/* Copyright 2015, Kenneth MacKay. Licensed under the BSD 2-clause license. */

#ifndef _UECC_ASM_AVR_MULT_SQUARE_H_
#define _UECC_ASM_AVR_MULT_SQUARE_H_

#define FAST_MULT_ASM_20   \
    "adiw r30, 10 \n\t"    \
    "adiw r28, 10 \n\t"    \
    "ld r2, x+ \n\t"       \
    "ld r3, x+ \n\t"       \
    "ld r4, x+ \n\t"       \
    "ld r5, x+ \n\t"       \
    "ld r6, x+ \n\t"       \
    "ld r7, x+ \n\t"       \
    "ld r8, x+ \n\t"       \
    "ld r9, x+ \n\t"       \
    "ld r10, x+ \n\t"      \
    "ld r11, x+ \n\t"      \
    "ld r12, y+ \n\t"      \
    "ld r13, y+ \n\t"      \
    "ld r14, y+ \n\t"      \
    "ld r15, y+ \n\t"      \
    "ld r16, y+ \n\t"      \
    "ld r17, y+ \n\t"      \
    "ld r18, y+ \n\t"      \
    "ld r19, y+ \n\t"      \
    "ld r20, y+ \n\t"      \
    "ld r21, y+ \n\t"      \
    "ldi r25, 0 \n\t"      \
                           \
    "ldi r23, 0 \n\t"      \
    "mul r2, r12 \n\t"     \
    "st z+, r0 \n\t"       \
    "mov r22, r1 \n\t"     \
                           \
    "ldi r24, 0 \n\t"      \
    "mul r2, r13 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "mul r3, r12 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ldi r22, 0 \n\t"      \
    "mul r2, r14 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r3, r13 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r4, r12 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ldi r23, 0 \n\t"      \
    "mul r2, r15 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r3, r14 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r4, r13 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r5, r12 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ldi r24, 0 \n\t"      \
    "mul r2, r16 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r3, r15 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r4, r14 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r5, r13 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r6, r12 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ldi r22, 0 \n\t"      \
    "mul r2, r17 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r3, r16 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r4, r15 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r5, r14 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r6, r13 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r7, r12 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ldi r23, 0 \n\t"      \
    "mul r2, r18 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r3, r17 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r4, r16 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r5, r15 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r6, r14 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r7, r13 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r8, r12 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ldi r24, 0 \n\t"      \
    "mul r2, r19 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r3, r18 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r4, r17 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r5, r16 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r6, r15 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r7, r14 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r8, r13 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r9, r12 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ldi r22, 0 \n\t"      \
    "mul r2, r20 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r3, r19 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r4, r18 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r5, r17 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r6, r16 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r7, r15 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r8, r14 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r9, r13 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r10, r12 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ldi r23, 0 \n\t"      \
    "mul r2, r21 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r3, r20 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r4, r19 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r5, r18 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r6, r17 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r7, r16 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r8, r15 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r9, r14 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r10, r13 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r11, r12 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ldi r24, 0 \n\t"      \
    "mul r3, r21 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r4, r20 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r5, r19 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r6, r18 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r7, r17 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r8, r16 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r9, r15 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r10, r14 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r11, r13 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ldi r22, 0 \n\t"      \
    "mul r4, r21 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r5, r20 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r6, r19 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r7, r18 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r8, r17 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r9, r16 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r10, r15 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r11, r14 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ldi r23, 0 \n\t"      \
    "mul r5, r21 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r6, r20 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r7, r19 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r8, r18 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r9, r17 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r10, r16 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r11, r15 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ldi r24, 0 \n\t"      \
    "mul r6, r21 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r7, r20 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r8, r19 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r9, r18 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r10, r17 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r11, r16 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ldi r22, 0 \n\t"      \
    "mul r7, r21 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r8, r20 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r9, r19 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r10, r18 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r11, r17 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ldi r23, 0 \n\t"      \
    "mul r8, r21 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r9, r20 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r10, r19 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r11, r18 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ldi r24, 0 \n\t"      \
    "mul r9, r21 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r10, r20 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r11, r19 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ldi r22, 0 \n\t"      \
    "mul r10, r21 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r11, r20 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "mul r11, r21 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "st z+, r24 \n\t"      \
    "st z+, r22 \n\t"      \
                           \
    "sbiw r30, 30 \n\t"    \
    "sbiw r28, 20 \n\t"    \
    "ld r12, y+ \n\t"      \
    "ld r13, y+ \n\t"      \
    "ld r14, y+ \n\t"      \
    "ld r15, y+ \n\t"      \
    "ld r16, y+ \n\t"      \
    "ld r17, y+ \n\t"      \
    "ld r18, y+ \n\t"      \
    "ld r19, y+ \n\t"      \
    "ld r20, y+ \n\t"      \
    "ld r21, y+ \n\t"      \
                           \
    "ldi r23, 0 \n\t"      \
    "mul r2, r12 \n\t"     \
    "st z+, r0 \n\t"       \
    "mov r22, r1 \n\t"     \
                           \
    "ldi r24, 0 \n\t"      \
    "mul r2, r13 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "mul r3, r12 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ldi r22, 0 \n\t"      \
    "mul r2, r14 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r3, r13 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r4, r12 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ldi r23, 0 \n\t"      \
    "mul r2, r15 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r3, r14 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r4, r13 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r5, r12 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ldi r24, 0 \n\t"      \
    "mul r2, r16 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r3, r15 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r4, r14 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r5, r13 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r6, r12 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ldi r22, 0 \n\t"      \
    "mul r2, r17 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r3, r16 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r4, r15 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r5, r14 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r6, r13 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r7, r12 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ldi r23, 0 \n\t"      \
    "mul r2, r18 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r3, r17 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r4, r16 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r5, r15 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r6, r14 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r7, r13 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r8, r12 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ldi r24, 0 \n\t"      \
    "mul r2, r19 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r3, r18 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r4, r17 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r5, r16 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r6, r15 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r7, r14 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r8, r13 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r9, r12 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ldi r22, 0 \n\t"      \
    "mul r2, r20 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r3, r19 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r4, r18 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r5, r17 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r6, r16 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r7, r15 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r8, r14 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r9, r13 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r10, r12 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ldi r23, 0 \n\t"      \
    "mul r2, r21 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r3, r20 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r4, r19 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r5, r18 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r6, r17 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r7, r16 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r8, r15 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r9, r14 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r10, r13 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r11, r12 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ld r2, x+ \n\t"       \
    "ldi r24, 0 \n\t"      \
    "mul r3, r21 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r4, r20 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r5, r19 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r6, r18 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r7, r17 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r8, r16 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r9, r15 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r10, r14 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r11, r13 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r2, r12 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r22, r0 \n\t"     \
    "adc r23, r25 \n\t"    \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ld r3, x+ \n\t"       \
    "ldi r22, 0 \n\t"      \
    "mul r4, r21 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r5, r20 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r6, r19 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r7, r18 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r8, r17 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r9, r16 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r10, r15 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r11, r14 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r2, r13 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r3, r12 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r23, r0 \n\t"     \
    "adc r24, r25 \n\t"    \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ld r4, x+ \n\t"       \
    "ldi r23, 0 \n\t"      \
    "mul r5, r21 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r6, r20 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r7, r19 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r8, r18 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r9, r17 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r10, r16 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r11, r15 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r2, r14 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r3, r13 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r4, r12 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r24, r0 \n\t"     \
    "adc r22, r25 \n\t"    \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ld r5, x+ \n\t"       \
    "ldi r24, 0 \n\t"      \
    "mul r6, r21 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r7, r20 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r8, r19 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r9, r18 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r10, r17 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r11, r16 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r2, r15 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r3, r14 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r4, r13 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r5, r12 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r22, r0 \n\t"     \
    "adc r23, r25 \n\t"    \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ld r6, x+ \n\t"       \
    "ldi r22, 0 \n\t"      \
    "mul r7, r21 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r8, r20 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r9, r19 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r10, r18 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r11, r17 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r2, r16 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r3, r15 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r4, r14 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r5, r13 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r6, r12 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r23, r0 \n\t"     \
    "adc r24, r25 \n\t"    \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ld r7, x+ \n\t"       \
    "ldi r23, 0 \n\t"      \
    "mul r8, r21 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r9, r20 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r10, r19 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r11, r18 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r2, r17 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r3, r16 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r4, r15 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r5, r14 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r6, r13 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r7, r12 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r24, r0 \n\t"     \
    "adc r22, r25 \n\t"    \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ld r8, x+ \n\t"       \
    "ldi r24, 0 \n\t"      \
    "mul r9, r21 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r10, r20 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r11, r19 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r2, r18 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r3, r17 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r4, r16 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r5, r15 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r6, r14 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r7, r13 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r8, r12 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r22, r0 \n\t"     \
    "adc r23, r25 \n\t"    \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ld r9, x+ \n\t"       \
    "ldi r22, 0 \n\t"      \
    "mul r10, r21 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r11, r20 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r2, r19 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r3, r18 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r4, r17 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r5, r16 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r6, r15 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r7, r14 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r8, r13 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r9, r12 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r23, r0 \n\t"     \
    "adc r24, r25 \n\t"    \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ld r10, x+ \n\t"      \
    "ldi r23, 0 \n\t"      \
    "mul r11, r21 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r2, r20 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r3, r19 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r4, r18 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r5, r17 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r6, r16 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r7, r15 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r8, r14 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r9, r13 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r10, r12 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r24, r0 \n\t"     \
    "adc r22, r25 \n\t"    \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ld r11, x+ \n\t"      \
    "ldi r24, 0 \n\t"      \
    "mul r2, r21 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r3, r20 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r4, r19 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r5, r18 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r6, r17 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r7, r16 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r8, r15 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r9, r14 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r10, r13 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r11, r12 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r22, r0 \n\t"     \
    "adc r23, r25 \n\t"    \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ld r12, y+ \n\t"      \
    "ldi r22, 0 \n\t"      \
    "mul r2, r12 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r3, r21 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r4, r20 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r5, r19 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r6, r18 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r7, r17 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r8, r16 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r9, r15 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r10, r14 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r11, r13 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r23, r0 \n\t"     \
    "adc r24, r25 \n\t"    \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ld r13, y+ \n\t"      \
    "ldi r23, 0 \n\t"      \
    "mul r2, r13 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r3, r12 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r4, r21 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r5, r20 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r6, r19 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r7, r18 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r8, r17 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r9, r16 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r10, r15 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r11, r14 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r24, r0 \n\t"     \
    "adc r22, r25 \n\t"    \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ld r14, y+ \n\t"      \
    "ldi r24, 0 \n\t"      \
    "mul r2, r14 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r3, r13 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r4, r12 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r5, r21 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r6, r20 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r7, r19 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r8, r18 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r9, r17 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r10, r16 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r11, r15 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r22, r0 \n\t"     \
    "adc r23, r25 \n\t"    \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ld r15, y+ \n\t"      \
    "ldi r22, 0 \n\t"      \
    "mul r2, r15 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r3, r14 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r4, r13 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r5, r12 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r6, r21 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r7, r20 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r8, r19 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r9, r18 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r10, r17 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r11, r16 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r23, r0 \n\t"     \
    "adc r24, r25 \n\t"    \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ld r16, y+ \n\t"      \
    "ldi r23, 0 \n\t"      \
    "mul r2, r16 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r3, r15 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r4, r14 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r5, r13 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r6, r12 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r7, r21 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r8, r20 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r9, r19 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r10, r18 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r11, r17 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r24, r0 \n\t"     \
    "adc r22, r25 \n\t"    \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ld r17, y+ \n\t"      \
    "ldi r24, 0 \n\t"      \
    "mul r2, r17 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r3, r16 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r4, r15 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r5, r14 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r6, r13 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r7, r12 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r8, r21 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r9, r20 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r10, r19 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r11, r18 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r22, r0 \n\t"     \
    "adc r23, r25 \n\t"    \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ld r18, y+ \n\t"      \
    "ldi r22, 0 \n\t"      \
    "mul r2, r18 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r3, r17 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r4, r16 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r5, r15 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r6, r14 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r7, r13 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r8, r12 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r9, r21 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r10, r20 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r11, r19 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r23, r0 \n\t"     \
    "adc r24, r25 \n\t"    \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ld r19, y+ \n\t"      \
    "ldi r23, 0 \n\t"      \
    "mul r2, r19 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r3, r18 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r4, r17 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r5, r16 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r6, r15 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r7, r14 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r8, r13 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r9, r12 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r10, r21 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r11, r20 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r24, r0 \n\t"     \
    "adc r22, r25 \n\t"    \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ld r20, y+ \n\t"      \
    "ldi r24, 0 \n\t"      \
    "mul r2, r20 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r3, r19 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r4, r18 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r5, r17 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r6, r16 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r7, r15 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r8, r14 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r9, r13 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r10, r12 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r11, r21 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r22, r0 \n\t"     \
    "adc r23, r25 \n\t"    \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ld r21, y+ \n\t"      \
    "ldi r22, 0 \n\t"      \
    "mul r2, r21 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r3, r20 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r4, r19 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r5, r18 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r6, r17 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r7, r16 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r8, r15 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r9, r14 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r10, r13 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r11, r12 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r23, r0 \n\t"     \
    "adc r24, r25 \n\t"    \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ldi r23, 0 \n\t"      \
    "mul r3, r21 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r4, r20 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r5, r19 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r6, r18 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r7, r17 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r8, r16 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r9, r15 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r10, r14 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r11, r13 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ldi r24, 0 \n\t"      \
    "mul r4, r21 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r5, r20 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r6, r19 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r7, r18 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r8, r17 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r9, r16 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r10, r15 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r11, r14 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ldi r22, 0 \n\t"      \
    "mul r5, r21 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r6, r20 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r7, r19 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r8, r18 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r9, r17 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r10, r16 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r11, r15 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ldi r23, 0 \n\t"      \
    "mul r6, r21 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r7, r20 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r8, r19 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r9, r18 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r10, r17 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r11, r16 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ldi r24, 0 \n\t"      \
    "mul r7, r21 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r8, r20 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r9, r19 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r10, r18 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r11, r17 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ldi r22, 0 \n\t"      \
    "mul r8, r21 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r9, r20 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r10, r19 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r11, r18 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ldi r23, 0 \n\t"      \
    "mul r9, r21 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r10, r20 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r11, r19 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ldi r24, 0 \n\t"      \
    "mul r10, r21 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r11, r20 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "mul r11, r21 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "st z+, r23 \n\t"      \
    "st z+, r24 \n\t"

#define FAST_MULT_ASM_20_TO_24     \
    "cpi r18, 20 \n\t"             \
    "brne 1f \n\t"                 \
    "jmp 2f \n\t"                  \
    "1: \n\t"                      \
    "ld r2, x+ \n\t"               \
    "ld r6, y+ \n\t"               \
    "ld r3, x+ \n\t"               \
    "ld r7, y+ \n\t"               \
    "ld r4, x+ \n\t"               \
    "ld r8, y+ \n\t"               \
    "ld r5, x+ \n\t"               \
    "ld r9, y+ \n\t"               \
    "sbiw r26, 24 \n\t"            \
    "sbiw r28, 24 \n\t"            \
    "sbiw r30, 20 \n\t"            \
    "ld r10, x+ \n\t"              \
    "ld r14, y+ \n\t"              \
    "ld r11, x+ \n\t"              \
    "ld r15, y+ \n\t"              \
    "ld r12, x+ \n\t"              \
    "ld r16, y+ \n\t"              \
    "ld r13, x+ \n\t"              \
    "ld r17, y+ \n\t"              \
                                   \
    "mul r2, r14 \n\t"             \
    "mov r19, r0 \n\t"             \
    "mov r20, r1 \n\t"             \
    "ldi r21, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r19, r0 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r6, r10 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "st z+, r19 \n\t"              \
                                   \
    "ldi r19, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r20, r0 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r2, r15 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r6, r11 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r3, r14 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r7, r10 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "st z+, r20 \n\t"              \
                                   \
    "ldi r20, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r21, r0 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r2, r16 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r6, r12 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r3, r15 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r7, r11 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r4, r14 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r8, r10 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "st z+, r21 \n\t"              \
                                   \
    "ldi r21, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r19, r0 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r2, r17 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r6, r13 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r3, r16 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r7, r12 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r4, r15 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r8, r11 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r5, r14 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r9, r10 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "st z+, r19 \n\t"              \
                                   \
    "ldi r19, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r20, r0 \n\t"             \
    "adc r21, r25 \n\t"            \
    "ld r10, x+ \n\t"              \
    "ld r14, y+ \n\t"              \
    "mul r2, r14 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r6, r10 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r3, r17 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r7, r13 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r4, r16 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r8, r12 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r5, r15 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r9, r11 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "st z+, r20 \n\t"              \
                                   \
    "ldi r20, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r21, r0 \n\t"             \
    "adc r19, r25 \n\t"            \
    "ld r11, x+ \n\t"              \
    "ld r15, y+ \n\t"              \
    "mul r2, r15 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r6, r11 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r3, r14 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r7, r10 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r4, r17 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r8, r13 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r5, r16 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r9, r12 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "st z+, r21 \n\t"              \
                                   \
    "ldi r21, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r19, r0 \n\t"             \
    "adc r20, r25 \n\t"            \
    "ld r12, x+ \n\t"              \
    "ld r16, y+ \n\t"              \
    "mul r2, r16 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r6, r12 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r3, r15 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r7, r11 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r4, r14 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r8, r10 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r5, r17 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r9, r13 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "st z+, r19 \n\t"              \
                                   \
    "ldi r19, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r20, r0 \n\t"             \
    "adc r21, r25 \n\t"            \
    "ld r13, x+ \n\t"              \
    "ld r17, y+ \n\t"              \
    "mul r2, r17 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r6, r13 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r3, r16 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r7, r12 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r4, r15 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r8, r11 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r5, r14 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r9, r10 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "st z+, r20 \n\t"              \
                                   \
    "ldi r20, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r21, r0 \n\t"             \
    "adc r19, r25 \n\t"            \
    "ld r10, x+ \n\t"              \
    "ld r14, y+ \n\t"              \
    "mul r2, r14 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r6, r10 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r3, r17 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r7, r13 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r4, r16 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r8, r12 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r5, r15 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r9, r11 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "st z+, r21 \n\t"              \
                                   \
    "ldi r21, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r19, r0 \n\t"             \
    "adc r20, r25 \n\t"            \
    "ld r11, x+ \n\t"              \
    "ld r15, y+ \n\t"              \
    "mul r2, r15 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r6, r11 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r3, r14 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r7, r10 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r4, r17 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r8, r13 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r5, r16 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r9, r12 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "st z+, r19 \n\t"              \
                                   \
    "ldi r19, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r20, r0 \n\t"             \
    "adc r21, r25 \n\t"            \
    "ld r12, x+ \n\t"              \
    "ld r16, y+ \n\t"              \
    "mul r2, r16 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r6, r12 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r3, r15 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r7, r11 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r4, r14 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r8, r10 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r5, r17 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r9, r13 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "st z+, r20 \n\t"              \
                                   \
    "ldi r20, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r21, r0 \n\t"             \
    "adc r19, r25 \n\t"            \
    "ld r13, x+ \n\t"              \
    "ld r17, y+ \n\t"              \
    "mul r2, r17 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r6, r13 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r3, r16 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r7, r12 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r4, r15 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r8, r11 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r5, r14 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r9, r10 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "st z+, r21 \n\t"              \
                                   \
    "ldi r21, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r19, r0 \n\t"             \
    "adc r20, r25 \n\t"            \
    "ld r10, x+ \n\t"              \
    "ld r14, y+ \n\t"              \
    "mul r2, r14 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r6, r10 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r3, r17 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r7, r13 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r4, r16 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r8, r12 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r5, r15 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r9, r11 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "st z+, r19 \n\t"              \
                                   \
    "ldi r19, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r20, r0 \n\t"             \
    "adc r21, r25 \n\t"            \
    "ld r11, x+ \n\t"              \
    "ld r15, y+ \n\t"              \
    "mul r2, r15 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r6, r11 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r3, r14 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r7, r10 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r4, r17 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r8, r13 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r5, r16 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r9, r12 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "st z+, r20 \n\t"              \
                                   \
    "ldi r20, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r21, r0 \n\t"             \
    "adc r19, r25 \n\t"            \
    "ld r12, x+ \n\t"              \
    "ld r16, y+ \n\t"              \
    "mul r2, r16 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r6, r12 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r3, r15 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r7, r11 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r4, r14 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r8, r10 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r5, r17 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r9, r13 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "st z+, r21 \n\t"              \
                                   \
    "ldi r21, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r19, r0 \n\t"             \
    "adc r20, r25 \n\t"            \
    "ld r13, x+ \n\t"              \
    "ld r17, y+ \n\t"              \
    "mul r2, r17 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r6, r13 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r3, r16 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r7, r12 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r4, r15 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r8, r11 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r5, r14 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r9, r10 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "st z+, r19 \n\t"              \
                                   \
    "ldi r19, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r20, r0 \n\t"             \
    "adc r21, r25 \n\t"            \
    "ld r10, x+ \n\t"              \
    "ld r14, y+ \n\t"              \
    "mul r2, r14 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r6, r10 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r3, r17 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r7, r13 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r4, r16 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r8, r12 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r5, r15 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r9, r11 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "st z+, r20 \n\t"              \
                                   \
    "ldi r20, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r21, r0 \n\t"             \
    "adc r19, r25 \n\t"            \
    "ld r11, x+ \n\t"              \
    "ld r15, y+ \n\t"              \
    "mul r2, r15 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r6, r11 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r3, r14 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r7, r10 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r4, r17 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r8, r13 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r5, r16 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r9, r12 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "st z+, r21 \n\t"              \
                                   \
    "ldi r21, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r19, r0 \n\t"             \
    "adc r20, r25 \n\t"            \
    "ld r12, x+ \n\t"              \
    "ld r16, y+ \n\t"              \
    "mul r2, r16 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r6, r12 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r3, r15 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r7, r11 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r4, r14 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r8, r10 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r5, r17 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r9, r13 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "st z+, r19 \n\t"              \
                                   \
    "ldi r19, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r20, r0 \n\t"             \
    "adc r21, r25 \n\t"            \
    "ld r13, x+ \n\t"              \
    "ld r17, y+ \n\t"              \
    "mul r2, r17 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r6, r13 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r3, r16 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r7, r12 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r4, r15 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r8, r11 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r5, r14 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r9, r10 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "st z+, r20 \n\t"              \
                                   \
    "ldi r20, 0 \n\t"              \
    "mul r11, r9 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r12, r8 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r13, r7 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r2, r6 \n\t"              \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r3, r17 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r4, r16 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r5, r15 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "st z+, r21 \n\t"              \
                                   \
    "ldi r21, 0 \n\t"              \
    "mul r12, r9 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r13, r8 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r2, r7 \n\t"              \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r3, r6 \n\t"              \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r4, r17 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r5, r16 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "st z+, r19 \n\t"              \
                                   \
    "ldi r19, 0 \n\t"              \
    "mul r13, r9 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r2, r8 \n\t"              \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r3, r7 \n\t"              \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r4, r6 \n\t"              \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r5, r17 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "st z+, r20 \n\t"              \
                                   \
    "ldi r20, 0 \n\t"              \
    "mul r2, r9 \n\t"              \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r3, r8 \n\t"              \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r4, r7 \n\t"              \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r5, r6 \n\t"              \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "st z+, r21 \n\t"              \
                                   \
    "ldi r21, 0 \n\t"              \
    "mul r3, r9 \n\t"              \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r4, r8 \n\t"              \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r5, r7 \n\t"              \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "st z+, r19 \n\t"              \
                                   \
    "ldi r19, 0 \n\t"              \
    "mul r4, r9 \n\t"              \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r5, r8 \n\t"              \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "st z+, r20 \n\t"              \
                                   \
    "mul r5, r9 \n\t"              \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "st z+, r21 \n\t"              \
    "st z+, r19 \n\t"              \
    "adiw r26, 4 \n\t"             \
    "adiw r28, 4 \n\t"

#define FAST_MULT_ASM_24       \
    "adiw r30, 20 \n\t"        \
    "adiw r28, 20 \n\t"        \
    "ld r2, x+ \n\t"           \
    "ld r3, x+ \n\t"           \
    "ld r4, x+ \n\t"           \
    "ld r5, x+ \n\t"           \
    "ld r12, y+ \n\t"          \
    "ld r13, y+ \n\t"          \
    "ld r14, y+ \n\t"          \
    "ld r15, y+ \n\t"          \
    "ldi r25, 0 \n\t"          \
                               \
    "ldi r23, 0 \n\t"          \
    "mul r2, r12 \n\t"         \
    "st z+, r0 \n\t"           \
    "mov r22, r1 \n\t"         \
                               \
    "ldi r24, 0 \n\t"          \
    "mul r2, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "mul r3, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ldi r22, 0 \n\t"          \
    "mul r2, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ldi r23, 0 \n\t"          \
    "mul r2, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ldi r24, 0 \n\t"          \
    "mul r3, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ldi r22, 0 \n\t"          \
    "mul r4, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "mul r5, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "st z+, r24 \n\t"          \
    "st z+, r22 \n\t"          \
                               \
    "sbiw r30, 18 \n\t"        \
    "sbiw r28, 14 \n\t"        \
    "ld r12, y+ \n\t"          \
    "ld r13, y+ \n\t"          \
    "ld r14, y+ \n\t"          \
    "ld r15, y+ \n\t"          \
    "ld r16, y+ \n\t"          \
    "ld r17, y+ \n\t"          \
    "ld r18, y+ \n\t"          \
    "ld r19, y+ \n\t"          \
    "ld r20, y+ \n\t"          \
    "ld r21, y+ \n\t"          \
    "ld r6, x+ \n\t"           \
    "ld r7, x+ \n\t"           \
    "ld r8, x+ \n\t"           \
    "ld r9, x+ \n\t"           \
    "ld r10, x+ \n\t"          \
    "ld r11, x+ \n\t"          \
                               \
    "ldi r23, 0 \n\t"          \
    "mul r2, r12 \n\t"         \
    "st z+, r0 \n\t"           \
    "mov r22, r1 \n\t"         \
                               \
    "ldi r24, 0 \n\t"          \
    "mul r2, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "mul r3, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ldi r22, 0 \n\t"          \
    "mul r2, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ldi r23, 0 \n\t"          \
    "mul r2, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ldi r24, 0 \n\t"          \
    "mul r2, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r6, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ldi r22, 0 \n\t"          \
    "mul r2, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r6, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ldi r23, 0 \n\t"          \
    "mul r2, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r16 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r6, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ldi r24, 0 \n\t"          \
    "mul r2, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r17 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r6, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ldi r22, 0 \n\t"          \
    "mul r2, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r18 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r6, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r12 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ldi r23, 0 \n\t"          \
    "mul r2, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r19 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r6, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r16 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r13 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r12 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ld r2, x+ \n\t"           \
    "ldi r24, 0 \n\t"          \
    "mul r3, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r20 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r6, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r17 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r14 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r13 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r22, r0 \n\t"         \
    "adc r23, r25 \n\t"        \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ld r3, x+ \n\t"           \
    "ldi r22, 0 \n\t"          \
    "mul r4, r21 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r6, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r18 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r15 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r14 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r23, r0 \n\t"         \
    "adc r24, r25 \n\t"        \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ld r4, x+ \n\t"           \
    "ldi r23, 0 \n\t"          \
    "mul r5, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r6, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r19 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r16 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r15 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r24, r0 \n\t"         \
    "adc r22, r25 \n\t"        \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ld r5, x+ \n\t"           \
    "ldi r24, 0 \n\t"          \
    "mul r6, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r20 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r17 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r16 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r22, r0 \n\t"         \
    "adc r23, r25 \n\t"        \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ld r12, y+ \n\t"          \
    "ldi r22, 0 \n\t"          \
    "mul r6, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r21 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r18 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r17 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r23, r0 \n\t"         \
    "adc r24, r25 \n\t"        \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ld r13, y+ \n\t"          \
    "ldi r23, 0 \n\t"          \
    "mul r6, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r19 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r18 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r16 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r24, r0 \n\t"         \
    "adc r22, r25 \n\t"        \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ld r14, y+ \n\t"          \
    "ldi r24, 0 \n\t"          \
    "mul r6, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r20 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r19 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r17 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r22, r0 \n\t"         \
    "adc r23, r25 \n\t"        \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ld r15, y+ \n\t"          \
    "ldi r22, 0 \n\t"          \
    "mul r6, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r21 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r20 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r18 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r23, r0 \n\t"         \
    "adc r24, r25 \n\t"        \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ldi r23, 0 \n\t"          \
    "mul r7, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r12 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r21 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r19 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ldi r24, 0 \n\t"          \
    "mul r8, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r13 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r12 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r20 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ldi r22, 0 \n\t"          \
    "mul r9, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r14 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r13 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r21 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ldi r23, 0 \n\t"          \
    "mul r10, r15 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r14 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ldi r24, 0 \n\t"          \
    "mul r11, r15 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ldi r22, 0 \n\t"          \
    "mul r2, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ldi r23, 0 \n\t"          \
    "mul r3, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ldi r24, 0 \n\t"          \
    "mul r4, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "mul r5, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "st z+, r23 \n\t"          \
    "st z+, r24 \n\t"          \
                               \
    "sbiw r30, 38 \n\t"        \
    "sbiw r28, 24 \n\t"        \
    "sbiw r26, 14 \n\t"        \
    "ld r2, x+ \n\t"           \
    "ld r12, y+ \n\t"          \
    "ld r3, x+ \n\t"           \
    "ld r13, y+ \n\t"          \
    "ld r4, x+ \n\t"           \
    "ld r14, y+ \n\t"          \
    "ld r5, x+ \n\t"           \
    "ld r15, y+ \n\t"          \
    "ld r6, x+ \n\t"           \
    "ld r16, y+ \n\t"          \
    "ld r7, x+ \n\t"           \
    "ld r17, y+ \n\t"          \
    "ld r8, x+ \n\t"           \
    "ld r18, y+ \n\t"          \
    "ld r9, x+ \n\t"           \
    "ld r19, y+ \n\t"          \
    "ld r10, x+ \n\t"          \
    "ld r20, y+ \n\t"          \
    "ld r11, x+ \n\t"          \
    "ld r21, y+ \n\t"          \
                               \
    "ldi r23, 0 \n\t"          \
    "mul r2, r12 \n\t"         \
    "st z+, r0 \n\t"           \
    "mov r22, r1 \n\t"         \
                               \
    "ldi r24, 0 \n\t"          \
    "mul r2, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "mul r3, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ldi r22, 0 \n\t"          \
    "mul r2, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ldi r23, 0 \n\t"          \
    "mul r2, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ldi r24, 0 \n\t"          \
    "mul r2, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r6, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ldi r22, 0 \n\t"          \
    "mul r2, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r6, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ldi r23, 0 \n\t"          \
    "mul r2, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r16 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r6, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ldi r24, 0 \n\t"          \
    "mul r2, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r17 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r6, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ldi r22, 0 \n\t"          \
    "mul r2, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r18 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r6, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r12 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ldi r23, 0 \n\t"          \
    "mul r2, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r19 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r6, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r16 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r13 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r12 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ld r2, x+ \n\t"           \
    "ldi r24, 0 \n\t"          \
    "mul r3, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r20 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r6, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r17 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r14 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r13 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r22, r0 \n\t"         \
    "adc r23, r25 \n\t"        \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ld r3, x+ \n\t"           \
    "ldi r22, 0 \n\t"          \
    "mul r4, r21 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r6, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r18 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r15 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r14 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r23, r0 \n\t"         \
    "adc r24, r25 \n\t"        \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ld r4, x+ \n\t"           \
    "ldi r23, 0 \n\t"          \
    "mul r5, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r6, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r19 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r16 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r15 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r24, r0 \n\t"         \
    "adc r22, r25 \n\t"        \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ld r5, x+ \n\t"           \
    "ldi r24, 0 \n\t"          \
    "mul r6, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r20 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r17 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r16 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r22, r0 \n\t"         \
    "adc r23, r25 \n\t"        \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ld r6, x+ \n\t"           \
    "ldi r22, 0 \n\t"          \
    "mul r7, r21 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r18 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r17 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r6, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r23, r0 \n\t"         \
    "adc r24, r25 \n\t"        \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ld r7, x+ \n\t"           \
    "ldi r23, 0 \n\t"          \
    "mul r8, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r19 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r18 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r16 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r6, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r24, r0 \n\t"         \
    "adc r22, r25 \n\t"        \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ld r8, x+ \n\t"           \
    "ldi r24, 0 \n\t"          \
    "mul r9, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r20 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r19 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r17 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r6, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r22, r0 \n\t"         \
    "adc r23, r25 \n\t"        \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ld r9, x+ \n\t"           \
    "ldi r22, 0 \n\t"          \
    "mul r10, r21 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r20 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r18 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r6, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r23, r0 \n\t"         \
    "adc r24, r25 \n\t"        \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ld r10, x+ \n\t"          \
    "ldi r23, 0 \n\t"          \
    "mul r11, r21 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r19 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r6, r16 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r12 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r24, r0 \n\t"         \
    "adc r22, r25 \n\t"        \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ld r11, x+ \n\t"          \
    "ldi r24, 0 \n\t"          \
    "mul r2, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r20 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r6, r17 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r13 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r12 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r22, r0 \n\t"         \
    "adc r23, r25 \n\t"        \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ld r2, x+ \n\t"           \
    "ldi r22, 0 \n\t"          \
    "mul r3, r21 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r6, r18 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r14 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r13 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r23, r0 \n\t"         \
    "adc r24, r25 \n\t"        \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ld r3, x+ \n\t"           \
    "ldi r23, 0 \n\t"          \
    "mul r4, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r6, r19 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r16 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r15 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r14 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r24, r0 \n\t"         \
    "adc r22, r25 \n\t"        \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ld r4, x+ \n\t"           \
    "ldi r24, 0 \n\t"          \
    "mul r5, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r6, r20 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r17 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r16 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r15 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r22, r0 \n\t"         \
    "adc r23, r25 \n\t"        \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ld r5, x+ \n\t"           \
    "ldi r22, 0 \n\t"          \
    "mul r6, r21 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r18 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r17 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r16 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r23, r0 \n\t"         \
    "adc r24, r25 \n\t"        \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ld r12, y+ \n\t"          \
    "ldi r23, 0 \n\t"          \
    "mul r6, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r19 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r18 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r17 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r16 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r24, r0 \n\t"         \
    "adc r22, r25 \n\t"        \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ld r13, y+ \n\t"          \
    "ldi r24, 0 \n\t"          \
    "mul r6, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r20 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r19 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r18 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r17 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r22, r0 \n\t"         \
    "adc r23, r25 \n\t"        \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ld r14, y+ \n\t"          \
    "ldi r22, 0 \n\t"          \
    "mul r6, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r21 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r20 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r19 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r18 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r23, r0 \n\t"         \
    "adc r24, r25 \n\t"        \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ld r15, y+ \n\t"          \
    "ldi r23, 0 \n\t"          \
    "mul r6, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r21 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r20 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r19 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r16 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r24, r0 \n\t"         \
    "adc r22, r25 \n\t"        \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ld r16, y+ \n\t"          \
    "ldi r24, 0 \n\t"          \
    "mul r6, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r12 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r21 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r20 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r17 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r22, r0 \n\t"         \
    "adc r23, r25 \n\t"        \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ld r17, y+ \n\t"          \
    "ldi r22, 0 \n\t"          \
    "mul r6, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r13 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r12 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r21 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r18 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r23, r0 \n\t"         \
    "adc r24, r25 \n\t"        \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ld r18, y+ \n\t"          \
    "ldi r23, 0 \n\t"          \
    "mul r6, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r16 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r14 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r13 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r19 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r24, r0 \n\t"         \
    "adc r22, r25 \n\t"        \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ld r19, y+ \n\t"          \
    "ldi r24, 0 \n\t"          \
    "mul r6, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r17 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r15 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r14 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r20 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r22, r0 \n\t"         \
    "adc r23, r25 \n\t"        \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ld r20, y+ \n\t"          \
    "ldi r22, 0 \n\t"          \
    "mul r6, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r18 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r16 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r15 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r21 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r23, r0 \n\t"         \
    "adc r24, r25 \n\t"        \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ld r21, y+ \n\t"          \
    "ldi r23, 0 \n\t"          \
    "mul r6, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r19 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r17 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r16 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r24, r0 \n\t"         \
    "adc r22, r25 \n\t"        \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ld r12, y+ \n\t"          \
    "ldi r24, 0 \n\t"          \
    "mul r6, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r20 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r18 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r17 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r22, r0 \n\t"         \
    "adc r23, r25 \n\t"        \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ld r13, y+ \n\t"          \
    "ldi r22, 0 \n\t"          \
    "mul r6, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r21 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r19 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r18 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r23, r0 \n\t"         \
    "adc r24, r25 \n\t"        \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ld r14, y+ \n\t"          \
    "ldi r23, 0 \n\t"          \
    "mul r6, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r20 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r19 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r16 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r24, r0 \n\t"         \
    "adc r22, r25 \n\t"        \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ld r15, y+ \n\t"          \
    "ldi r24, 0 \n\t"          \
    "mul r6, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r21 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r20 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r17 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r22, r0 \n\t"         \
    "adc r23, r25 \n\t"        \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ldi r22, 0 \n\t"          \
    "mul r7, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r12 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r21 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r18 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ldi r23, 0 \n\t"          \
    "mul r8, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r13 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r12 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r19 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ldi r24, 0 \n\t"          \
    "mul r9, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r14 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r13 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r20 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ldi r22, 0 \n\t"          \
    "mul r10, r15 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r14 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r21 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ldi r23, 0 \n\t"          \
    "mul r11, r15 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ldi r24, 0 \n\t"          \
    "mul r2, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ldi r22, 0 \n\t"          \
    "mul r3, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ldi r23, 0 \n\t"          \
    "mul r4, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "mul r5, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "st z+, r22 \n\t"          \
    "st z+, r23 \n\t"

#define FAST_MULT_ASM_24_TO_28     \
    "cpi r18, 24 \n\t"             \
    "brne 1f \n\t"                 \
    "jmp 2f \n\t"                  \
    "1: \n\t"                      \
    "ld r2, x+ \n\t"               \
    "ld r6, y+ \n\t"               \
    "ld r3, x+ \n\t"               \
    "ld r7, y+ \n\t"               \
    "ld r4, x+ \n\t"               \
    "ld r8, y+ \n\t"               \
    "ld r5, x+ \n\t"               \
    "ld r9, y+ \n\t"               \
    "sbiw r26, 28 \n\t"            \
    "sbiw r28, 28 \n\t"            \
    "sbiw r30, 24 \n\t"            \
    "ld r10, x+ \n\t"              \
    "ld r14, y+ \n\t"              \
    "ld r11, x+ \n\t"              \
    "ld r15, y+ \n\t"              \
    "ld r12, x+ \n\t"              \
    "ld r16, y+ \n\t"              \
    "ld r13, x+ \n\t"              \
    "ld r17, y+ \n\t"              \
                                   \
    "mul r2, r14 \n\t"             \
    "mov r19, r0 \n\t"             \
    "mov r20, r1 \n\t"             \
    "ldi r21, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r19, r0 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r6, r10 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "st z+, r19 \n\t"              \
                                   \
    "ldi r19, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r20, r0 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r2, r15 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r6, r11 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r3, r14 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r7, r10 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "st z+, r20 \n\t"              \
                                   \
    "ldi r20, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r21, r0 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r2, r16 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r6, r12 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r3, r15 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r7, r11 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r4, r14 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r8, r10 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "st z+, r21 \n\t"              \
                                   \
    "ldi r21, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r19, r0 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r2, r17 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r6, r13 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r3, r16 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r7, r12 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r4, r15 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r8, r11 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r5, r14 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r9, r10 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "st z+, r19 \n\t"              \
                                   \
    "ldi r19, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r20, r0 \n\t"             \
    "adc r21, r25 \n\t"            \
    "ld r10, x+ \n\t"              \
    "ld r14, y+ \n\t"              \
    "mul r2, r14 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r6, r10 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r3, r17 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r7, r13 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r4, r16 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r8, r12 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r5, r15 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r9, r11 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "st z+, r20 \n\t"              \
                                   \
    "ldi r20, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r21, r0 \n\t"             \
    "adc r19, r25 \n\t"            \
    "ld r11, x+ \n\t"              \
    "ld r15, y+ \n\t"              \
    "mul r2, r15 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r6, r11 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r3, r14 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r7, r10 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r4, r17 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r8, r13 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r5, r16 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r9, r12 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "st z+, r21 \n\t"              \
                                   \
    "ldi r21, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r19, r0 \n\t"             \
    "adc r20, r25 \n\t"            \
    "ld r12, x+ \n\t"              \
    "ld r16, y+ \n\t"              \
    "mul r2, r16 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r6, r12 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r3, r15 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r7, r11 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r4, r14 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r8, r10 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r5, r17 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r9, r13 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "st z+, r19 \n\t"              \
                                   \
    "ldi r19, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r20, r0 \n\t"             \
    "adc r21, r25 \n\t"            \
    "ld r13, x+ \n\t"              \
    "ld r17, y+ \n\t"              \
    "mul r2, r17 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r6, r13 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r3, r16 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r7, r12 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r4, r15 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r8, r11 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r5, r14 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r9, r10 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "st z+, r20 \n\t"              \
                                   \
    "ldi r20, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r21, r0 \n\t"             \
    "adc r19, r25 \n\t"            \
    "ld r10, x+ \n\t"              \
    "ld r14, y+ \n\t"              \
    "mul r2, r14 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r6, r10 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r3, r17 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r7, r13 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r4, r16 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r8, r12 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r5, r15 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r9, r11 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "st z+, r21 \n\t"              \
                                   \
    "ldi r21, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r19, r0 \n\t"             \
    "adc r20, r25 \n\t"            \
    "ld r11, x+ \n\t"              \
    "ld r15, y+ \n\t"              \
    "mul r2, r15 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r6, r11 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r3, r14 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r7, r10 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r4, r17 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r8, r13 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r5, r16 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r9, r12 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "st z+, r19 \n\t"              \
                                   \
    "ldi r19, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r20, r0 \n\t"             \
    "adc r21, r25 \n\t"            \
    "ld r12, x+ \n\t"              \
    "ld r16, y+ \n\t"              \
    "mul r2, r16 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r6, r12 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r3, r15 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r7, r11 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r4, r14 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r8, r10 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r5, r17 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r9, r13 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "st z+, r20 \n\t"              \
                                   \
    "ldi r20, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r21, r0 \n\t"             \
    "adc r19, r25 \n\t"            \
    "ld r13, x+ \n\t"              \
    "ld r17, y+ \n\t"              \
    "mul r2, r17 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r6, r13 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r3, r16 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r7, r12 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r4, r15 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r8, r11 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r5, r14 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r9, r10 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "st z+, r21 \n\t"              \
                                   \
    "ldi r21, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r19, r0 \n\t"             \
    "adc r20, r25 \n\t"            \
    "ld r10, x+ \n\t"              \
    "ld r14, y+ \n\t"              \
    "mul r2, r14 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r6, r10 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r3, r17 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r7, r13 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r4, r16 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r8, r12 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r5, r15 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r9, r11 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "st z+, r19 \n\t"              \
                                   \
    "ldi r19, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r20, r0 \n\t"             \
    "adc r21, r25 \n\t"            \
    "ld r11, x+ \n\t"              \
    "ld r15, y+ \n\t"              \
    "mul r2, r15 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r6, r11 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r3, r14 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r7, r10 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r4, r17 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r8, r13 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r5, r16 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r9, r12 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "st z+, r20 \n\t"              \
                                   \
    "ldi r20, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r21, r0 \n\t"             \
    "adc r19, r25 \n\t"            \
    "ld r12, x+ \n\t"              \
    "ld r16, y+ \n\t"              \
    "mul r2, r16 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r6, r12 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r3, r15 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r7, r11 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r4, r14 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r8, r10 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r5, r17 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r9, r13 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "st z+, r21 \n\t"              \
                                   \
    "ldi r21, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r19, r0 \n\t"             \
    "adc r20, r25 \n\t"            \
    "ld r13, x+ \n\t"              \
    "ld r17, y+ \n\t"              \
    "mul r2, r17 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r6, r13 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r3, r16 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r7, r12 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r4, r15 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r8, r11 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r5, r14 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r9, r10 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "st z+, r19 \n\t"              \
                                   \
    "ldi r19, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r20, r0 \n\t"             \
    "adc r21, r25 \n\t"            \
    "ld r10, x+ \n\t"              \
    "ld r14, y+ \n\t"              \
    "mul r2, r14 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r6, r10 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r3, r17 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r7, r13 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r4, r16 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r8, r12 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r5, r15 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r9, r11 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "st z+, r20 \n\t"              \
                                   \
    "ldi r20, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r21, r0 \n\t"             \
    "adc r19, r25 \n\t"            \
    "ld r11, x+ \n\t"              \
    "ld r15, y+ \n\t"              \
    "mul r2, r15 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r6, r11 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r3, r14 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r7, r10 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r4, r17 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r8, r13 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r5, r16 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r9, r12 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "st z+, r21 \n\t"              \
                                   \
    "ldi r21, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r19, r0 \n\t"             \
    "adc r20, r25 \n\t"            \
    "ld r12, x+ \n\t"              \
    "ld r16, y+ \n\t"              \
    "mul r2, r16 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r6, r12 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r3, r15 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r7, r11 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r4, r14 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r8, r10 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r5, r17 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r9, r13 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "st z+, r19 \n\t"              \
                                   \
    "ldi r19, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r20, r0 \n\t"             \
    "adc r21, r25 \n\t"            \
    "ld r13, x+ \n\t"              \
    "ld r17, y+ \n\t"              \
    "mul r2, r17 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r6, r13 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r3, r16 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r7, r12 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r4, r15 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r8, r11 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r5, r14 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r9, r10 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "st z+, r20 \n\t"              \
                                   \
    "ldi r20, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r21, r0 \n\t"             \
    "adc r19, r25 \n\t"            \
    "ld r10, x+ \n\t"              \
    "ld r14, y+ \n\t"              \
    "mul r2, r14 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r6, r10 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r3, r17 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r7, r13 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r4, r16 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r8, r12 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r5, r15 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r9, r11 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "st z+, r21 \n\t"              \
                                   \
    "ldi r21, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r19, r0 \n\t"             \
    "adc r20, r25 \n\t"            \
    "ld r11, x+ \n\t"              \
    "ld r15, y+ \n\t"              \
    "mul r2, r15 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r6, r11 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r3, r14 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r7, r10 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r4, r17 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r8, r13 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r5, r16 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r9, r12 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "st z+, r19 \n\t"              \
                                   \
    "ldi r19, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r20, r0 \n\t"             \
    "adc r21, r25 \n\t"            \
    "ld r12, x+ \n\t"              \
    "ld r16, y+ \n\t"              \
    "mul r2, r16 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r6, r12 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r3, r15 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r7, r11 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r4, r14 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r8, r10 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r5, r17 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r9, r13 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "st z+, r20 \n\t"              \
                                   \
    "ldi r20, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r21, r0 \n\t"             \
    "adc r19, r25 \n\t"            \
    "ld r13, x+ \n\t"              \
    "ld r17, y+ \n\t"              \
    "mul r2, r17 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r6, r13 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r3, r16 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r7, r12 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r4, r15 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r8, r11 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r5, r14 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r9, r10 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "st z+, r21 \n\t"              \
                                   \
    "ldi r21, 0 \n\t"              \
    "mul r11, r9 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r12, r8 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r13, r7 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r2, r6 \n\t"              \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r3, r17 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r4, r16 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r5, r15 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "st z+, r19 \n\t"              \
                                   \
    "ldi r19, 0 \n\t"              \
    "mul r12, r9 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r13, r8 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r2, r7 \n\t"              \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r3, r6 \n\t"              \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r4, r17 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r5, r16 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "st z+, r20 \n\t"              \
                                   \
    "ldi r20, 0 \n\t"              \
    "mul r13, r9 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r2, r8 \n\t"              \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r3, r7 \n\t"              \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r4, r6 \n\t"              \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r5, r17 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "st z+, r21 \n\t"              \
                                   \
    "ldi r21, 0 \n\t"              \
    "mul r2, r9 \n\t"              \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r3, r8 \n\t"              \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r4, r7 \n\t"              \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r5, r6 \n\t"              \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "st z+, r19 \n\t"              \
                                   \
    "ldi r19, 0 \n\t"              \
    "mul r3, r9 \n\t"              \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r4, r8 \n\t"              \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r5, r7 \n\t"              \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "st z+, r20 \n\t"              \
                                   \
    "ldi r20, 0 \n\t"              \
    "mul r4, r9 \n\t"              \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r5, r8 \n\t"              \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "st z+, r21 \n\t"              \
                                   \
    "mul r5, r9 \n\t"              \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "st z+, r19 \n\t"              \
    "st z+, r20 \n\t"              \
    "adiw r26, 4 \n\t"             \
    "adiw r28, 4 \n\t"

#define FAST_MULT_ASM_28   \
    "adiw r30, 20 \n\t"    \
    "adiw r28, 20 \n\t"    \
    "ld r2, x+ \n\t"       \
    "ld r3, x+ \n\t"       \
    "ld r4, x+ \n\t"       \
    "ld r5, x+ \n\t"       \
    "ld r6, x+ \n\t"       \
    "ld r7, x+ \n\t"       \
    "ld r8, x+ \n\t"       \
    "ld r9, x+ \n\t"       \
    "ld r12, y+ \n\t"      \
    "ld r13, y+ \n\t"      \
    "ld r14, y+ \n\t"      \
    "ld r15, y+ \n\t"      \
    "ld r16, y+ \n\t"      \
    "ld r17, y+ \n\t"      \
    "ld r18, y+ \n\t"      \
    "ld r19, y+ \n\t"      \
    "ldi r25, 0 \n\t"      \
                           \
    "ldi r23, 0 \n\t"      \
    "mul r2, r12 \n\t"     \
    "st z+, r0 \n\t"       \
    "mov r22, r1 \n\t"     \
                           \
    "ldi r24, 0 \n\t"      \
    "mul r2, r13 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "mul r3, r12 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ldi r22, 0 \n\t"      \
    "mul r2, r14 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r3, r13 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r4, r12 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ldi r23, 0 \n\t"      \
    "mul r2, r15 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r3, r14 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r4, r13 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r5, r12 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ldi r24, 0 \n\t"      \
    "mul r2, r16 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r3, r15 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r4, r14 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r5, r13 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r6, r12 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ldi r22, 0 \n\t"      \
    "mul r2, r17 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r3, r16 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r4, r15 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r5, r14 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r6, r13 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r7, r12 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ldi r23, 0 \n\t"      \
    "mul r2, r18 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r3, r17 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r4, r16 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r5, r15 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r6, r14 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r7, r13 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r8, r12 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ldi r24, 0 \n\t"      \
    "mul r2, r19 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r3, r18 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r4, r17 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r5, r16 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r6, r15 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r7, r14 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r8, r13 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r9, r12 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ldi r22, 0 \n\t"      \
    "mul r3, r19 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r4, r18 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r5, r17 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r6, r16 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r7, r15 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r8, r14 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r9, r13 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ldi r23, 0 \n\t"      \
    "mul r4, r19 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r5, r18 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r6, r17 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r7, r16 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r8, r15 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r9, r14 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ldi r24, 0 \n\t"      \
    "mul r5, r19 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r6, r18 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r7, r17 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r8, r16 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r9, r15 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ldi r22, 0 \n\t"      \
    "mul r6, r19 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r7, r18 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r8, r17 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r9, r16 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ldi r23, 0 \n\t"      \
    "mul r7, r19 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r8, r18 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r9, r17 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ldi r24, 0 \n\t"      \
    "mul r8, r19 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r9, r18 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "mul r9, r19 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "st z+, r23 \n\t"      \
    "st z+, r24 \n\t"      \
                           \
    "sbiw r30, 26 \n\t"    \
    "sbiw r28, 18 \n\t"    \
    "ld r12, y+ \n\t"      \
    "ld r13, y+ \n\t"      \
    "ld r14, y+ \n\t"      \
    "ld r15, y+ \n\t"      \
    "ld r16, y+ \n\t"      \
    "ld r17, y+ \n\t"      \
    "ld r18, y+ \n\t"      \
    "ld r19, y+ \n\t"      \
    "ld r20, y+ \n\t"      \
    "ld r21, y+ \n\t"      \
    "ld r10, x+ \n\t"      \
    "ld r11, x+ \n\t"      \
                           \
    "ldi r23, 0 \n\t"      \
    "mul r2, r12 \n\t"     \
    "st z+, r0 \n\t"       \
    "mov r22, r1 \n\t"     \
                           \
    "ldi r24, 0 \n\t"      \
    "mul r2, r13 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "mul r3, r12 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ldi r22, 0 \n\t"      \
    "mul r2, r14 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r3, r13 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r4, r12 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ldi r23, 0 \n\t"      \
    "mul r2, r15 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r3, r14 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r4, r13 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r5, r12 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ldi r24, 0 \n\t"      \
    "mul r2, r16 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r3, r15 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r4, r14 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r5, r13 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r6, r12 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ldi r22, 0 \n\t"      \
    "mul r2, r17 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r3, r16 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r4, r15 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r5, r14 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r6, r13 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r7, r12 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ldi r23, 0 \n\t"      \
    "mul r2, r18 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r3, r17 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r4, r16 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r5, r15 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r6, r14 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r7, r13 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r8, r12 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ldi r24, 0 \n\t"      \
    "mul r2, r19 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r3, r18 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r4, r17 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r5, r16 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r6, r15 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r7, r14 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r8, r13 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r9, r12 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ldi r22, 0 \n\t"      \
    "mul r2, r20 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r3, r19 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r4, r18 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r5, r17 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r6, r16 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r7, r15 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r8, r14 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r9, r13 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r10, r12 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ldi r23, 0 \n\t"      \
    "mul r2, r21 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r3, r20 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r4, r19 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r5, r18 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r6, r17 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r7, r16 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r8, r15 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r9, r14 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r10, r13 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r11, r12 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ld r2, x+ \n\t"       \
    "ldi r24, 0 \n\t"      \
    "mul r3, r21 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r4, r20 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r5, r19 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r6, r18 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r7, r17 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r8, r16 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r9, r15 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r10, r14 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r11, r13 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r2, r12 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r22, r0 \n\t"     \
    "adc r23, r25 \n\t"    \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ld r3, x+ \n\t"       \
    "ldi r22, 0 \n\t"      \
    "mul r4, r21 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r5, r20 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r6, r19 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r7, r18 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r8, r17 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r9, r16 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r10, r15 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r11, r14 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r2, r13 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r3, r12 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r23, r0 \n\t"     \
    "adc r24, r25 \n\t"    \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ld r4, x+ \n\t"       \
    "ldi r23, 0 \n\t"      \
    "mul r5, r21 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r6, r20 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r7, r19 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r8, r18 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r9, r17 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r10, r16 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r11, r15 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r2, r14 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r3, r13 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r4, r12 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r24, r0 \n\t"     \
    "adc r22, r25 \n\t"    \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ld r5, x+ \n\t"       \
    "ldi r24, 0 \n\t"      \
    "mul r6, r21 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r7, r20 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r8, r19 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r9, r18 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r10, r17 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r11, r16 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r2, r15 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r3, r14 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r4, r13 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r5, r12 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r22, r0 \n\t"     \
    "adc r23, r25 \n\t"    \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ld r6, x+ \n\t"       \
    "ldi r22, 0 \n\t"      \
    "mul r7, r21 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r8, r20 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r9, r19 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r10, r18 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r11, r17 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r2, r16 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r3, r15 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r4, r14 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r5, r13 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r6, r12 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r23, r0 \n\t"     \
    "adc r24, r25 \n\t"    \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ld r7, x+ \n\t"       \
    "ldi r23, 0 \n\t"      \
    "mul r8, r21 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r9, r20 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r10, r19 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r11, r18 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r2, r17 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r3, r16 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r4, r15 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r5, r14 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r6, r13 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r7, r12 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r24, r0 \n\t"     \
    "adc r22, r25 \n\t"    \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ld r8, x+ \n\t"       \
    "ldi r24, 0 \n\t"      \
    "mul r9, r21 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r10, r20 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r11, r19 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r2, r18 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r3, r17 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r4, r16 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r5, r15 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r6, r14 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r7, r13 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r8, r12 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r22, r0 \n\t"     \
    "adc r23, r25 \n\t"    \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ld r9, x+ \n\t"       \
    "ldi r22, 0 \n\t"      \
    "mul r10, r21 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r11, r20 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r2, r19 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r3, r18 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r4, r17 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r5, r16 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r6, r15 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r7, r14 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r8, r13 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r9, r12 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r23, r0 \n\t"     \
    "adc r24, r25 \n\t"    \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ld r12, y+ \n\t"      \
    "ldi r23, 0 \n\t"      \
    "mul r10, r12 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r11, r21 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r2, r20 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r3, r19 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r4, r18 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r5, r17 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r6, r16 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r7, r15 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r8, r14 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r9, r13 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r24, r0 \n\t"     \
    "adc r22, r25 \n\t"    \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ld r13, y+ \n\t"      \
    "ldi r24, 0 \n\t"      \
    "mul r10, r13 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r11, r12 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r2, r21 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r3, r20 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r4, r19 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r5, r18 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r6, r17 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r7, r16 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r8, r15 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r9, r14 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r22, r0 \n\t"     \
    "adc r23, r25 \n\t"    \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ld r14, y+ \n\t"      \
    "ldi r22, 0 \n\t"      \
    "mul r10, r14 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r11, r13 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r2, r12 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r3, r21 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r4, r20 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r5, r19 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r6, r18 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r7, r17 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r8, r16 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r9, r15 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r23, r0 \n\t"     \
    "adc r24, r25 \n\t"    \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ld r15, y+ \n\t"      \
    "ldi r23, 0 \n\t"      \
    "mul r10, r15 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r11, r14 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r2, r13 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r3, r12 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r4, r21 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r5, r20 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r6, r19 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r7, r18 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r8, r17 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r9, r16 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r24, r0 \n\t"     \
    "adc r22, r25 \n\t"    \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ld r16, y+ \n\t"      \
    "ldi r24, 0 \n\t"      \
    "mul r10, r16 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r11, r15 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r2, r14 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r3, r13 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r4, r12 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r5, r21 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r6, r20 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r7, r19 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r8, r18 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r9, r17 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r22, r0 \n\t"     \
    "adc r23, r25 \n\t"    \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ld r17, y+ \n\t"      \
    "ldi r22, 0 \n\t"      \
    "mul r10, r17 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r11, r16 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r2, r15 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r3, r14 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r4, r13 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r5, r12 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r6, r21 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r7, r20 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r8, r19 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r9, r18 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r23, r0 \n\t"     \
    "adc r24, r25 \n\t"    \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ld r18, y+ \n\t"      \
    "ldi r23, 0 \n\t"      \
    "mul r10, r18 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r11, r17 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r2, r16 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r3, r15 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r4, r14 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r5, r13 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r6, r12 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r7, r21 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r8, r20 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r9, r19 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r24, r0 \n\t"     \
    "adc r22, r25 \n\t"    \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ld r19, y+ \n\t"      \
    "ldi r24, 0 \n\t"      \
    "mul r10, r19 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r11, r18 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r2, r17 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r3, r16 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r4, r15 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r5, r14 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r6, r13 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r7, r12 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r8, r21 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r9, r20 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r22, r0 \n\t"     \
    "adc r23, r25 \n\t"    \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ldi r22, 0 \n\t"      \
    "mul r11, r19 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r2, r18 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r3, r17 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r4, r16 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r5, r15 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r6, r14 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r7, r13 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r8, r12 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r9, r21 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ldi r23, 0 \n\t"      \
    "mul r2, r19 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r3, r18 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r4, r17 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r5, r16 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r6, r15 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r7, r14 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r8, r13 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r9, r12 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ldi r24, 0 \n\t"      \
    "mul r3, r19 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r4, r18 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r5, r17 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r6, r16 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r7, r15 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r8, r14 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r9, r13 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ldi r22, 0 \n\t"      \
    "mul r4, r19 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r5, r18 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r6, r17 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r7, r16 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r8, r15 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r9, r14 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ldi r23, 0 \n\t"      \
    "mul r5, r19 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r6, r18 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r7, r17 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r8, r16 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r9, r15 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ldi r24, 0 \n\t"      \
    "mul r6, r19 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r7, r18 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r8, r17 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r9, r16 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ldi r22, 0 \n\t"      \
    "mul r7, r19 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r8, r18 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r9, r17 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ldi r23, 0 \n\t"      \
    "mul r8, r19 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r9, r18 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "mul r9, r19 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "st z+, r22 \n\t"      \
    "st z+, r23 \n\t"      \
                           \
    "sbiw r30, 46 \n\t"    \
    "sbiw r28, 28 \n\t"    \
    "sbiw r26, 18 \n\t"    \
    "ld r2, x+ \n\t"       \
    "ld r12, y+ \n\t"      \
    "ld r3, x+ \n\t"       \
    "ld r13, y+ \n\t"      \
    "ld r4, x+ \n\t"       \
    "ld r14, y+ \n\t"      \
    "ld r5, x+ \n\t"       \
    "ld r15, y+ \n\t"      \
    "ld r6, x+ \n\t"       \
    "ld r16, y+ \n\t"      \
    "ld r7, x+ \n\t"       \
    "ld r17, y+ \n\t"      \
    "ld r8, x+ \n\t"       \
    "ld r18, y+ \n\t"      \
    "ld r9, x+ \n\t"       \
    "ld r19, y+ \n\t"      \
    "ld r10, x+ \n\t"      \
    "ld r20, y+ \n\t"      \
    "ld r11, x+ \n\t"      \
    "ld r21, y+ \n\t"      \
                           \
    "ldi r23, 0 \n\t"      \
    "mul r2, r12 \n\t"     \
    "st z+, r0 \n\t"       \
    "mov r22, r1 \n\t"     \
                           \
    "ldi r24, 0 \n\t"      \
    "mul r2, r13 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "mul r3, r12 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ldi r22, 0 \n\t"      \
    "mul r2, r14 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r3, r13 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r4, r12 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ldi r23, 0 \n\t"      \
    "mul r2, r15 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r3, r14 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r4, r13 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r5, r12 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ldi r24, 0 \n\t"      \
    "mul r2, r16 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r3, r15 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r4, r14 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r5, r13 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r6, r12 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ldi r22, 0 \n\t"      \
    "mul r2, r17 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r3, r16 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r4, r15 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r5, r14 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r6, r13 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r7, r12 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ldi r23, 0 \n\t"      \
    "mul r2, r18 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r3, r17 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r4, r16 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r5, r15 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r6, r14 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r7, r13 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r8, r12 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ldi r24, 0 \n\t"      \
    "mul r2, r19 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r3, r18 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r4, r17 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r5, r16 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r6, r15 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r7, r14 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r8, r13 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r9, r12 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ldi r22, 0 \n\t"      \
    "mul r2, r20 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r3, r19 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r4, r18 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r5, r17 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r6, r16 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r7, r15 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r8, r14 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r9, r13 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r10, r12 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ldi r23, 0 \n\t"      \
    "mul r2, r21 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r3, r20 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r4, r19 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r5, r18 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r6, r17 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r7, r16 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r8, r15 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r9, r14 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r10, r13 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r11, r12 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ld r2, x+ \n\t"       \
    "ldi r24, 0 \n\t"      \
    "mul r3, r21 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r4, r20 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r5, r19 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r6, r18 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r7, r17 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r8, r16 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r9, r15 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r10, r14 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r11, r13 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r2, r12 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r22, r0 \n\t"     \
    "adc r23, r25 \n\t"    \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ld r3, x+ \n\t"       \
    "ldi r22, 0 \n\t"      \
    "mul r4, r21 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r5, r20 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r6, r19 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r7, r18 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r8, r17 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r9, r16 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r10, r15 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r11, r14 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r2, r13 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r3, r12 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r23, r0 \n\t"     \
    "adc r24, r25 \n\t"    \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ld r4, x+ \n\t"       \
    "ldi r23, 0 \n\t"      \
    "mul r5, r21 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r6, r20 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r7, r19 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r8, r18 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r9, r17 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r10, r16 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r11, r15 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r2, r14 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r3, r13 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r4, r12 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r24, r0 \n\t"     \
    "adc r22, r25 \n\t"    \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ld r5, x+ \n\t"       \
    "ldi r24, 0 \n\t"      \
    "mul r6, r21 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r7, r20 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r8, r19 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r9, r18 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r10, r17 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r11, r16 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r2, r15 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r3, r14 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r4, r13 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r5, r12 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r22, r0 \n\t"     \
    "adc r23, r25 \n\t"    \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ld r6, x+ \n\t"       \
    "ldi r22, 0 \n\t"      \
    "mul r7, r21 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r8, r20 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r9, r19 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r10, r18 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r11, r17 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r2, r16 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r3, r15 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r4, r14 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r5, r13 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r6, r12 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r23, r0 \n\t"     \
    "adc r24, r25 \n\t"    \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ld r7, x+ \n\t"       \
    "ldi r23, 0 \n\t"      \
    "mul r8, r21 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r9, r20 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r10, r19 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r11, r18 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r2, r17 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r3, r16 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r4, r15 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r5, r14 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r6, r13 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r7, r12 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r24, r0 \n\t"     \
    "adc r22, r25 \n\t"    \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ld r8, x+ \n\t"       \
    "ldi r24, 0 \n\t"      \
    "mul r9, r21 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r10, r20 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r11, r19 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r2, r18 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r3, r17 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r4, r16 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r5, r15 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r6, r14 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r7, r13 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r8, r12 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r22, r0 \n\t"     \
    "adc r23, r25 \n\t"    \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ld r9, x+ \n\t"       \
    "ldi r22, 0 \n\t"      \
    "mul r10, r21 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r11, r20 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r2, r19 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r3, r18 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r4, r17 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r5, r16 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r6, r15 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r7, r14 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r8, r13 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r9, r12 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r23, r0 \n\t"     \
    "adc r24, r25 \n\t"    \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ld r10, x+ \n\t"      \
    "ldi r23, 0 \n\t"      \
    "mul r11, r21 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r2, r20 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r3, r19 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r4, r18 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r5, r17 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r6, r16 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r7, r15 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r8, r14 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r9, r13 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r10, r12 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r24, r0 \n\t"     \
    "adc r22, r25 \n\t"    \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ld r11, x+ \n\t"      \
    "ldi r24, 0 \n\t"      \
    "mul r2, r21 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r3, r20 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r4, r19 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r5, r18 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r6, r17 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r7, r16 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r8, r15 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r9, r14 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r10, r13 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r11, r12 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r22, r0 \n\t"     \
    "adc r23, r25 \n\t"    \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ld r2, x+ \n\t"       \
    "ldi r22, 0 \n\t"      \
    "mul r3, r21 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r4, r20 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r5, r19 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r6, r18 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r7, r17 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r8, r16 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r9, r15 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r10, r14 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r11, r13 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r2, r12 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r23, r0 \n\t"     \
    "adc r24, r25 \n\t"    \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ld r3, x+ \n\t"       \
    "ldi r23, 0 \n\t"      \
    "mul r4, r21 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r5, r20 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r6, r19 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r7, r18 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r8, r17 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r9, r16 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r10, r15 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r11, r14 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r2, r13 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r3, r12 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r24, r0 \n\t"     \
    "adc r22, r25 \n\t"    \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ld r4, x+ \n\t"       \
    "ldi r24, 0 \n\t"      \
    "mul r5, r21 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r6, r20 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r7, r19 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r8, r18 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r9, r17 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r10, r16 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r11, r15 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r2, r14 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r3, r13 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r4, r12 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r22, r0 \n\t"     \
    "adc r23, r25 \n\t"    \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ld r5, x+ \n\t"       \
    "ldi r22, 0 \n\t"      \
    "mul r6, r21 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r7, r20 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r8, r19 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r9, r18 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r10, r17 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r11, r16 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r2, r15 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r3, r14 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r4, r13 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r5, r12 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r23, r0 \n\t"     \
    "adc r24, r25 \n\t"    \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ld r6, x+ \n\t"       \
    "ldi r23, 0 \n\t"      \
    "mul r7, r21 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r8, r20 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r9, r19 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r10, r18 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r11, r17 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r2, r16 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r3, r15 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r4, r14 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r5, r13 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r6, r12 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r24, r0 \n\t"     \
    "adc r22, r25 \n\t"    \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ld r7, x+ \n\t"       \
    "ldi r24, 0 \n\t"      \
    "mul r8, r21 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r9, r20 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r10, r19 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r11, r18 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r2, r17 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r3, r16 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r4, r15 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r5, r14 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r6, r13 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r7, r12 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r22, r0 \n\t"     \
    "adc r23, r25 \n\t"    \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ld r8, x+ \n\t"       \
    "ldi r22, 0 \n\t"      \
    "mul r9, r21 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r10, r20 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r11, r19 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r2, r18 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r3, r17 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r4, r16 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r5, r15 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r6, r14 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r7, r13 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r8, r12 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r23, r0 \n\t"     \
    "adc r24, r25 \n\t"    \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ld r9, x+ \n\t"       \
    "ldi r23, 0 \n\t"      \
    "mul r10, r21 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r11, r20 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r2, r19 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r3, r18 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r4, r17 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r5, r16 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r6, r15 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r7, r14 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r8, r13 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r9, r12 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r24, r0 \n\t"     \
    "adc r22, r25 \n\t"    \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ld r12, y+ \n\t"      \
    "ldi r24, 0 \n\t"      \
    "mul r10, r12 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r11, r21 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r2, r20 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r3, r19 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r4, r18 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r5, r17 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r6, r16 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r7, r15 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r8, r14 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r9, r13 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r22, r0 \n\t"     \
    "adc r23, r25 \n\t"    \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ld r13, y+ \n\t"      \
    "ldi r22, 0 \n\t"      \
    "mul r10, r13 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r11, r12 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r2, r21 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r3, r20 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r4, r19 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r5, r18 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r6, r17 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r7, r16 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r8, r15 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r9, r14 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r23, r0 \n\t"     \
    "adc r24, r25 \n\t"    \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ld r14, y+ \n\t"      \
    "ldi r23, 0 \n\t"      \
    "mul r10, r14 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r11, r13 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r2, r12 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r3, r21 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r4, r20 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r5, r19 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r6, r18 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r7, r17 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r8, r16 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r9, r15 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r24, r0 \n\t"     \
    "adc r22, r25 \n\t"    \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ld r15, y+ \n\t"      \
    "ldi r24, 0 \n\t"      \
    "mul r10, r15 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r11, r14 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r2, r13 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r3, r12 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r4, r21 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r5, r20 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r6, r19 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r7, r18 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r8, r17 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r9, r16 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r22, r0 \n\t"     \
    "adc r23, r25 \n\t"    \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ld r16, y+ \n\t"      \
    "ldi r22, 0 \n\t"      \
    "mul r10, r16 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r11, r15 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r2, r14 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r3, r13 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r4, r12 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r5, r21 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r6, r20 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r7, r19 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r8, r18 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r9, r17 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r23, r0 \n\t"     \
    "adc r24, r25 \n\t"    \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ld r17, y+ \n\t"      \
    "ldi r23, 0 \n\t"      \
    "mul r10, r17 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r11, r16 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r2, r15 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r3, r14 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r4, r13 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r5, r12 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r6, r21 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r7, r20 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r8, r19 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r9, r18 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r24, r0 \n\t"     \
    "adc r22, r25 \n\t"    \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ld r18, y+ \n\t"      \
    "ldi r24, 0 \n\t"      \
    "mul r10, r18 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r11, r17 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r2, r16 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r3, r15 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r4, r14 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r5, r13 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r6, r12 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r7, r21 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r8, r20 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r9, r19 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r22, r0 \n\t"     \
    "adc r23, r25 \n\t"    \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ld r19, y+ \n\t"      \
    "ldi r22, 0 \n\t"      \
    "mul r10, r19 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r11, r18 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r2, r17 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r3, r16 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r4, r15 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r5, r14 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r6, r13 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r7, r12 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r8, r21 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r9, r20 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r23, r0 \n\t"     \
    "adc r24, r25 \n\t"    \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ld r20, y+ \n\t"      \
    "ldi r23, 0 \n\t"      \
    "mul r10, r20 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r11, r19 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r2, r18 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r3, r17 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r4, r16 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r5, r15 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r6, r14 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r7, r13 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r8, r12 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r9, r21 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r24, r0 \n\t"     \
    "adc r22, r25 \n\t"    \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ld r21, y+ \n\t"      \
    "ldi r24, 0 \n\t"      \
    "mul r10, r21 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r11, r20 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r2, r19 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r3, r18 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r4, r17 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r5, r16 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r6, r15 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r7, r14 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r8, r13 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r9, r12 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r22, r0 \n\t"     \
    "adc r23, r25 \n\t"    \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ld r12, y+ \n\t"      \
    "ldi r22, 0 \n\t"      \
    "mul r10, r12 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r11, r21 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r2, r20 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r3, r19 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r4, r18 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r5, r17 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r6, r16 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r7, r15 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r8, r14 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r9, r13 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r23, r0 \n\t"     \
    "adc r24, r25 \n\t"    \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ld r13, y+ \n\t"      \
    "ldi r23, 0 \n\t"      \
    "mul r10, r13 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r11, r12 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r2, r21 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r3, r20 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r4, r19 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r5, r18 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r6, r17 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r7, r16 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r8, r15 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r9, r14 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r24, r0 \n\t"     \
    "adc r22, r25 \n\t"    \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ld r14, y+ \n\t"      \
    "ldi r24, 0 \n\t"      \
    "mul r10, r14 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r11, r13 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r2, r12 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r3, r21 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r4, r20 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r5, r19 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r6, r18 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r7, r17 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r8, r16 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r9, r15 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r22, r0 \n\t"     \
    "adc r23, r25 \n\t"    \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ld r15, y+ \n\t"      \
    "ldi r22, 0 \n\t"      \
    "mul r10, r15 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r11, r14 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r2, r13 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r3, r12 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r4, r21 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r5, r20 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r6, r19 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r7, r18 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r8, r17 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r9, r16 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r23, r0 \n\t"     \
    "adc r24, r25 \n\t"    \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ld r16, y+ \n\t"      \
    "ldi r23, 0 \n\t"      \
    "mul r10, r16 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r11, r15 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r2, r14 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r3, r13 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r4, r12 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r5, r21 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r6, r20 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r7, r19 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r8, r18 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r9, r17 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r24, r0 \n\t"     \
    "adc r22, r25 \n\t"    \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ld r17, y+ \n\t"      \
    "ldi r24, 0 \n\t"      \
    "mul r10, r17 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r11, r16 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r2, r15 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r3, r14 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r4, r13 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r5, r12 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r6, r21 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r7, r20 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r8, r19 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r9, r18 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r22, r0 \n\t"     \
    "adc r23, r25 \n\t"    \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ld r18, y+ \n\t"      \
    "ldi r22, 0 \n\t"      \
    "mul r10, r18 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r11, r17 \n\t"    \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r2, r16 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r3, r15 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r4, r14 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r5, r13 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r6, r12 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r7, r21 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r8, r20 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r9, r19 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r23, r0 \n\t"     \
    "adc r24, r25 \n\t"    \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ld r19, y+ \n\t"      \
    "ldi r23, 0 \n\t"      \
    "mul r10, r19 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r11, r18 \n\t"    \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r2, r17 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r3, r16 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r4, r15 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r5, r14 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r6, r13 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r7, r12 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r8, r21 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r9, r20 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "ld r0, z \n\t"        \
    "add r24, r0 \n\t"     \
    "adc r22, r25 \n\t"    \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ldi r24, 0 \n\t"      \
    "mul r11, r19 \n\t"    \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r2, r18 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r3, r17 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r4, r16 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r5, r15 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r6, r14 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r7, r13 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r8, r12 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r9, r21 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ldi r22, 0 \n\t"      \
    "mul r2, r19 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r3, r18 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r4, r17 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r5, r16 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r6, r15 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r7, r14 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r8, r13 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r9, r12 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ldi r23, 0 \n\t"      \
    "mul r3, r19 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r4, r18 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r5, r17 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r6, r16 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r7, r15 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r8, r14 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r9, r13 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ldi r24, 0 \n\t"      \
    "mul r4, r19 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r5, r18 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r6, r17 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r7, r16 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r8, r15 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r9, r14 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ldi r22, 0 \n\t"      \
    "mul r5, r19 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r6, r18 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r7, r17 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r8, r16 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r9, r15 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "ldi r23, 0 \n\t"      \
    "mul r6, r19 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r7, r18 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r8, r17 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "mul r9, r16 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "adc r23, r25 \n\t"    \
    "st z+, r24 \n\t"      \
                           \
    "ldi r24, 0 \n\t"      \
    "mul r7, r19 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r8, r18 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "mul r9, r17 \n\t"     \
    "add r22, r0 \n\t"     \
    "adc r23, r1 \n\t"     \
    "adc r24, r25 \n\t"    \
    "st z+, r22 \n\t"      \
                           \
    "ldi r22, 0 \n\t"      \
    "mul r8, r19 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "mul r9, r18 \n\t"     \
    "add r23, r0 \n\t"     \
    "adc r24, r1 \n\t"     \
    "adc r22, r25 \n\t"    \
    "st z+, r23 \n\t"      \
                           \
    "mul r9, r19 \n\t"     \
    "add r24, r0 \n\t"     \
    "adc r22, r1 \n\t"     \
    "st z+, r24 \n\t"      \
    "st z+, r22 \n\t"

#define FAST_MULT_ASM_28_TO_32     \
    "cpi r18, 28 \n\t"             \
    "brne 1f \n\t"                 \
    "jmp 2f \n\t"                  \
    "1: \n\t"                      \
    "ld r2, x+ \n\t"               \
    "ld r6, y+ \n\t"               \
    "ld r3, x+ \n\t"               \
    "ld r7, y+ \n\t"               \
    "ld r4, x+ \n\t"               \
    "ld r8, y+ \n\t"               \
    "ld r5, x+ \n\t"               \
    "ld r9, y+ \n\t"               \
    "sbiw r26, 32 \n\t"            \
    "sbiw r28, 32 \n\t"            \
    "sbiw r30, 28 \n\t"            \
    "ld r10, x+ \n\t"              \
    "ld r14, y+ \n\t"              \
    "ld r11, x+ \n\t"              \
    "ld r15, y+ \n\t"              \
    "ld r12, x+ \n\t"              \
    "ld r16, y+ \n\t"              \
    "ld r13, x+ \n\t"              \
    "ld r17, y+ \n\t"              \
                                   \
    "mul r2, r14 \n\t"             \
    "mov r19, r0 \n\t"             \
    "mov r20, r1 \n\t"             \
    "ldi r21, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r19, r0 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r6, r10 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "st z+, r19 \n\t"              \
                                   \
    "ldi r19, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r20, r0 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r2, r15 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r6, r11 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r3, r14 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r7, r10 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "st z+, r20 \n\t"              \
                                   \
    "ldi r20, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r21, r0 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r2, r16 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r6, r12 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r3, r15 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r7, r11 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r4, r14 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r8, r10 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "st z+, r21 \n\t"              \
                                   \
    "ldi r21, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r19, r0 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r2, r17 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r6, r13 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r3, r16 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r7, r12 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r4, r15 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r8, r11 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r5, r14 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r9, r10 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "st z+, r19 \n\t"              \
                                   \
    "ldi r19, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r20, r0 \n\t"             \
    "adc r21, r25 \n\t"            \
    "ld r10, x+ \n\t"              \
    "ld r14, y+ \n\t"              \
    "mul r2, r14 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r6, r10 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r3, r17 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r7, r13 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r4, r16 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r8, r12 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r5, r15 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r9, r11 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "st z+, r20 \n\t"              \
                                   \
    "ldi r20, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r21, r0 \n\t"             \
    "adc r19, r25 \n\t"            \
    "ld r11, x+ \n\t"              \
    "ld r15, y+ \n\t"              \
    "mul r2, r15 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r6, r11 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r3, r14 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r7, r10 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r4, r17 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r8, r13 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r5, r16 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r9, r12 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "st z+, r21 \n\t"              \
                                   \
    "ldi r21, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r19, r0 \n\t"             \
    "adc r20, r25 \n\t"            \
    "ld r12, x+ \n\t"              \
    "ld r16, y+ \n\t"              \
    "mul r2, r16 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r6, r12 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r3, r15 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r7, r11 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r4, r14 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r8, r10 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r5, r17 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r9, r13 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "st z+, r19 \n\t"              \
                                   \
    "ldi r19, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r20, r0 \n\t"             \
    "adc r21, r25 \n\t"            \
    "ld r13, x+ \n\t"              \
    "ld r17, y+ \n\t"              \
    "mul r2, r17 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r6, r13 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r3, r16 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r7, r12 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r4, r15 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r8, r11 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r5, r14 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r9, r10 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "st z+, r20 \n\t"              \
                                   \
    "ldi r20, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r21, r0 \n\t"             \
    "adc r19, r25 \n\t"            \
    "ld r10, x+ \n\t"              \
    "ld r14, y+ \n\t"              \
    "mul r2, r14 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r6, r10 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r3, r17 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r7, r13 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r4, r16 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r8, r12 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r5, r15 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r9, r11 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "st z+, r21 \n\t"              \
                                   \
    "ldi r21, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r19, r0 \n\t"             \
    "adc r20, r25 \n\t"            \
    "ld r11, x+ \n\t"              \
    "ld r15, y+ \n\t"              \
    "mul r2, r15 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r6, r11 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r3, r14 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r7, r10 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r4, r17 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r8, r13 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r5, r16 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r9, r12 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "st z+, r19 \n\t"              \
                                   \
    "ldi r19, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r20, r0 \n\t"             \
    "adc r21, r25 \n\t"            \
    "ld r12, x+ \n\t"              \
    "ld r16, y+ \n\t"              \
    "mul r2, r16 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r6, r12 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r3, r15 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r7, r11 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r4, r14 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r8, r10 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r5, r17 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r9, r13 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "st z+, r20 \n\t"              \
                                   \
    "ldi r20, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r21, r0 \n\t"             \
    "adc r19, r25 \n\t"            \
    "ld r13, x+ \n\t"              \
    "ld r17, y+ \n\t"              \
    "mul r2, r17 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r6, r13 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r3, r16 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r7, r12 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r4, r15 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r8, r11 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r5, r14 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r9, r10 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "st z+, r21 \n\t"              \
                                   \
    "ldi r21, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r19, r0 \n\t"             \
    "adc r20, r25 \n\t"            \
    "ld r10, x+ \n\t"              \
    "ld r14, y+ \n\t"              \
    "mul r2, r14 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r6, r10 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r3, r17 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r7, r13 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r4, r16 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r8, r12 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r5, r15 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r9, r11 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "st z+, r19 \n\t"              \
                                   \
    "ldi r19, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r20, r0 \n\t"             \
    "adc r21, r25 \n\t"            \
    "ld r11, x+ \n\t"              \
    "ld r15, y+ \n\t"              \
    "mul r2, r15 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r6, r11 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r3, r14 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r7, r10 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r4, r17 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r8, r13 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r5, r16 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r9, r12 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "st z+, r20 \n\t"              \
                                   \
    "ldi r20, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r21, r0 \n\t"             \
    "adc r19, r25 \n\t"            \
    "ld r12, x+ \n\t"              \
    "ld r16, y+ \n\t"              \
    "mul r2, r16 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r6, r12 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r3, r15 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r7, r11 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r4, r14 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r8, r10 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r5, r17 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r9, r13 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "st z+, r21 \n\t"              \
                                   \
    "ldi r21, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r19, r0 \n\t"             \
    "adc r20, r25 \n\t"            \
    "ld r13, x+ \n\t"              \
    "ld r17, y+ \n\t"              \
    "mul r2, r17 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r6, r13 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r3, r16 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r7, r12 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r4, r15 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r8, r11 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r5, r14 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r9, r10 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "st z+, r19 \n\t"              \
                                   \
    "ldi r19, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r20, r0 \n\t"             \
    "adc r21, r25 \n\t"            \
    "ld r10, x+ \n\t"              \
    "ld r14, y+ \n\t"              \
    "mul r2, r14 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r6, r10 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r3, r17 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r7, r13 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r4, r16 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r8, r12 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r5, r15 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r9, r11 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "st z+, r20 \n\t"              \
                                   \
    "ldi r20, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r21, r0 \n\t"             \
    "adc r19, r25 \n\t"            \
    "ld r11, x+ \n\t"              \
    "ld r15, y+ \n\t"              \
    "mul r2, r15 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r6, r11 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r3, r14 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r7, r10 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r4, r17 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r8, r13 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r5, r16 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r9, r12 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "st z+, r21 \n\t"              \
                                   \
    "ldi r21, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r19, r0 \n\t"             \
    "adc r20, r25 \n\t"            \
    "ld r12, x+ \n\t"              \
    "ld r16, y+ \n\t"              \
    "mul r2, r16 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r6, r12 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r3, r15 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r7, r11 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r4, r14 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r8, r10 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r5, r17 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r9, r13 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "st z+, r19 \n\t"              \
                                   \
    "ldi r19, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r20, r0 \n\t"             \
    "adc r21, r25 \n\t"            \
    "ld r13, x+ \n\t"              \
    "ld r17, y+ \n\t"              \
    "mul r2, r17 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r6, r13 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r3, r16 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r7, r12 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r4, r15 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r8, r11 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r5, r14 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r9, r10 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "st z+, r20 \n\t"              \
                                   \
    "ldi r20, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r21, r0 \n\t"             \
    "adc r19, r25 \n\t"            \
    "ld r10, x+ \n\t"              \
    "ld r14, y+ \n\t"              \
    "mul r2, r14 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r6, r10 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r3, r17 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r7, r13 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r4, r16 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r8, r12 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r5, r15 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r9, r11 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "st z+, r21 \n\t"              \
                                   \
    "ldi r21, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r19, r0 \n\t"             \
    "adc r20, r25 \n\t"            \
    "ld r11, x+ \n\t"              \
    "ld r15, y+ \n\t"              \
    "mul r2, r15 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r6, r11 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r3, r14 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r7, r10 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r4, r17 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r8, r13 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r5, r16 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r9, r12 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "st z+, r19 \n\t"              \
                                   \
    "ldi r19, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r20, r0 \n\t"             \
    "adc r21, r25 \n\t"            \
    "ld r12, x+ \n\t"              \
    "ld r16, y+ \n\t"              \
    "mul r2, r16 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r6, r12 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r3, r15 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r7, r11 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r4, r14 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r8, r10 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r5, r17 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r9, r13 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "st z+, r20 \n\t"              \
                                   \
    "ldi r20, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r21, r0 \n\t"             \
    "adc r19, r25 \n\t"            \
    "ld r13, x+ \n\t"              \
    "ld r17, y+ \n\t"              \
    "mul r2, r17 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r6, r13 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r3, r16 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r7, r12 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r4, r15 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r8, r11 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r5, r14 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r9, r10 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "st z+, r21 \n\t"              \
                                   \
    "ldi r21, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r19, r0 \n\t"             \
    "adc r20, r25 \n\t"            \
    "ld r10, x+ \n\t"              \
    "ld r14, y+ \n\t"              \
    "mul r2, r14 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r6, r10 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r3, r17 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r7, r13 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r4, r16 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r8, r12 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r5, r15 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r9, r11 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "st z+, r19 \n\t"              \
                                   \
    "ldi r19, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r20, r0 \n\t"             \
    "adc r21, r25 \n\t"            \
    "ld r11, x+ \n\t"              \
    "ld r15, y+ \n\t"              \
    "mul r2, r15 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r6, r11 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r3, r14 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r7, r10 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r4, r17 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r8, r13 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r5, r16 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r9, r12 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "st z+, r20 \n\t"              \
                                   \
    "ldi r20, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r21, r0 \n\t"             \
    "adc r19, r25 \n\t"            \
    "ld r12, x+ \n\t"              \
    "ld r16, y+ \n\t"              \
    "mul r2, r16 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r6, r12 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r3, r15 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r7, r11 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r4, r14 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r8, r10 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r5, r17 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r9, r13 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "st z+, r21 \n\t"              \
                                   \
    "ldi r21, 0 \n\t"              \
    "ld r0, z \n\t"                \
    "add r19, r0 \n\t"             \
    "adc r20, r25 \n\t"            \
    "ld r13, x+ \n\t"              \
    "ld r17, y+ \n\t"              \
    "mul r2, r17 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r6, r13 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r3, r16 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r7, r12 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r4, r15 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r8, r11 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r5, r14 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r9, r10 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "st z+, r19 \n\t"              \
                                   \
    "ldi r19, 0 \n\t"              \
    "mul r11, r9 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r12, r8 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r13, r7 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r2, r6 \n\t"              \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r3, r17 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r4, r16 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r5, r15 \n\t"             \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "st z+, r20 \n\t"              \
                                   \
    "ldi r20, 0 \n\t"              \
    "mul r12, r9 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r13, r8 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r2, r7 \n\t"              \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r3, r6 \n\t"              \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r4, r17 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r5, r16 \n\t"             \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "st z+, r21 \n\t"              \
                                   \
    "ldi r21, 0 \n\t"              \
    "mul r13, r9 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r2, r8 \n\t"              \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r3, r7 \n\t"              \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r4, r6 \n\t"              \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r5, r17 \n\t"             \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "st z+, r19 \n\t"              \
                                   \
    "ldi r19, 0 \n\t"              \
    "mul r2, r9 \n\t"              \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r3, r8 \n\t"              \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r4, r7 \n\t"              \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "mul r5, r6 \n\t"              \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "adc r19, r25 \n\t"            \
    "st z+, r20 \n\t"              \
                                   \
    "ldi r20, 0 \n\t"              \
    "mul r3, r9 \n\t"              \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r4, r8 \n\t"              \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "mul r5, r7 \n\t"              \
    "add r21, r0 \n\t"             \
    "adc r19, r1 \n\t"             \
    "adc r20, r25 \n\t"            \
    "st z+, r21 \n\t"              \
                                   \
    "ldi r21, 0 \n\t"              \
    "mul r4, r9 \n\t"              \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "mul r5, r8 \n\t"              \
    "add r19, r0 \n\t"             \
    "adc r20, r1 \n\t"             \
    "adc r21, r25 \n\t"            \
    "st z+, r19 \n\t"              \
                                   \
    "mul r5, r9 \n\t"              \
    "add r20, r0 \n\t"             \
    "adc r21, r1 \n\t"             \
    "st z+, r20 \n\t"              \
    "st z+, r21 \n\t"
    /* Not necessary to move ptrs since we don't support sizes > 32 */

#define FAST_MULT_ASM_32       \
    "adiw r30, 30 \n\t"        \
    "adiw r28, 30 \n\t"        \
    "ld r2, x+ \n\t"           \
    "ld r3, x+ \n\t"           \
    "ld r12, y+ \n\t"          \
    "ld r13, y+ \n\t"          \
    "ldi r25, 0 \n\t"          \
                               \
    "ldi r23, 0 \n\t"          \
    "mul r2, r12 \n\t"         \
    "st z+, r0 \n\t"           \
    "mov r22, r1 \n\t"         \
                               \
    "ldi r24, 0 \n\t"          \
    "mul r2, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "mul r3, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "mul r3, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "st z+, r23 \n\t"          \
    "st z+, r24 \n\t"          \
                               \
    "sbiw r30, 14 \n\t"        \
    "sbiw r28, 12 \n\t"        \
    "ld r12, y+ \n\t"          \
    "ld r13, y+ \n\t"          \
    "ld r14, y+ \n\t"          \
    "ld r15, y+ \n\t"          \
    "ld r16, y+ \n\t"          \
    "ld r17, y+ \n\t"          \
    "ld r18, y+ \n\t"          \
    "ld r19, y+ \n\t"          \
    "ld r20, y+ \n\t"          \
    "ld r21, y+ \n\t"          \
    "ld r4, x+ \n\t"           \
    "ld r5, x+ \n\t"           \
    "ld r6, x+ \n\t"           \
    "ld r7, x+ \n\t"           \
    "ld r8, x+ \n\t"           \
    "ld r9, x+ \n\t"           \
    "ld r10, x+ \n\t"          \
    "ld r11, x+ \n\t"          \
                               \
    "ldi r23, 0 \n\t"          \
    "mul r2, r12 \n\t"         \
    "st z+, r0 \n\t"           \
    "mov r22, r1 \n\t"         \
                               \
    "ldi r24, 0 \n\t"          \
    "mul r2, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "mul r3, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ldi r22, 0 \n\t"          \
    "mul r2, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ldi r23, 0 \n\t"          \
    "mul r2, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ldi r24, 0 \n\t"          \
    "mul r2, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r6, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ldi r22, 0 \n\t"          \
    "mul r2, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r6, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ldi r23, 0 \n\t"          \
    "mul r2, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r16 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r6, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ldi r24, 0 \n\t"          \
    "mul r2, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r17 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r6, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ldi r22, 0 \n\t"          \
    "mul r2, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r18 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r6, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r12 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ldi r23, 0 \n\t"          \
    "mul r2, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r19 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r6, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r16 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r13 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r12 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ld r2, x+ \n\t"           \
    "ldi r24, 0 \n\t"          \
    "mul r3, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r20 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r6, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r17 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r14 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r13 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r22, r0 \n\t"         \
    "adc r23, r25 \n\t"        \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ld r3, x+ \n\t"           \
    "ldi r22, 0 \n\t"          \
    "mul r4, r21 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r6, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r18 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r15 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r14 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r23, r0 \n\t"         \
    "adc r24, r25 \n\t"        \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ld r12, y+ \n\t"          \
    "ldi r23, 0 \n\t"          \
    "mul r4, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r6, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r19 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r16 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r15 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r24, r0 \n\t"         \
    "adc r22, r25 \n\t"        \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ld r13, y+ \n\t"          \
    "ldi r24, 0 \n\t"          \
    "mul r4, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r6, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r20 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r17 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r16 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r22, r0 \n\t"         \
    "adc r23, r25 \n\t"        \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ldi r22, 0 \n\t"          \
    "mul r5, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r6, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r21 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r18 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r17 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ldi r23, 0 \n\t"          \
    "mul r6, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r19 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r18 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r16 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ldi r24, 0 \n\t"          \
    "mul r7, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r20 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r19 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r17 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ldi r22, 0 \n\t"          \
    "mul r8, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r21 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r20 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r18 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ldi r23, 0 \n\t"          \
    "mul r9, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r12 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r21 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r19 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ldi r24, 0 \n\t"          \
    "mul r10, r13 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r12 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r20 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ldi r22, 0 \n\t"          \
    "mul r11, r13 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r21 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ldi r23, 0 \n\t"          \
    "mul r2, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "mul r3, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "st z+, r22 \n\t"          \
    "st z+, r23 \n\t"          \
                               \
    "sbiw r30, 34 \n\t"        \
    "sbiw r28, 22 \n\t"        \
    "sbiw r26, 12 \n\t"        \
    "ld r2, x+ \n\t"           \
    "ld r12, y+ \n\t"          \
    "ld r3, x+ \n\t"           \
    "ld r13, y+ \n\t"          \
    "ld r4, x+ \n\t"           \
    "ld r14, y+ \n\t"          \
    "ld r5, x+ \n\t"           \
    "ld r15, y+ \n\t"          \
    "ld r6, x+ \n\t"           \
    "ld r16, y+ \n\t"          \
    "ld r7, x+ \n\t"           \
    "ld r17, y+ \n\t"          \
    "ld r8, x+ \n\t"           \
    "ld r18, y+ \n\t"          \
    "ld r9, x+ \n\t"           \
    "ld r19, y+ \n\t"          \
    "ld r10, x+ \n\t"          \
    "ld r20, y+ \n\t"          \
    "ld r11, x+ \n\t"          \
    "ld r21, y+ \n\t"          \
                               \
    "ldi r23, 0 \n\t"          \
    "mul r2, r12 \n\t"         \
    "st z+, r0 \n\t"           \
    "mov r22, r1 \n\t"         \
                               \
    "ldi r24, 0 \n\t"          \
    "mul r2, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "mul r3, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ldi r22, 0 \n\t"          \
    "mul r2, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ldi r23, 0 \n\t"          \
    "mul r2, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ldi r24, 0 \n\t"          \
    "mul r2, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r6, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ldi r22, 0 \n\t"          \
    "mul r2, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r6, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ldi r23, 0 \n\t"          \
    "mul r2, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r16 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r6, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ldi r24, 0 \n\t"          \
    "mul r2, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r17 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r6, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ldi r22, 0 \n\t"          \
    "mul r2, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r18 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r6, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r12 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ldi r23, 0 \n\t"          \
    "mul r2, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r19 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r6, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r16 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r13 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r12 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ld r2, x+ \n\t"           \
    "ldi r24, 0 \n\t"          \
    "mul r3, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r20 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r6, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r17 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r14 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r13 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r22, r0 \n\t"         \
    "adc r23, r25 \n\t"        \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ld r3, x+ \n\t"           \
    "ldi r22, 0 \n\t"          \
    "mul r4, r21 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r6, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r18 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r15 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r14 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r23, r0 \n\t"         \
    "adc r24, r25 \n\t"        \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ld r4, x+ \n\t"           \
    "ldi r23, 0 \n\t"          \
    "mul r5, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r6, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r19 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r16 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r15 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r24, r0 \n\t"         \
    "adc r22, r25 \n\t"        \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ld r5, x+ \n\t"           \
    "ldi r24, 0 \n\t"          \
    "mul r6, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r20 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r17 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r16 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r22, r0 \n\t"         \
    "adc r23, r25 \n\t"        \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ld r6, x+ \n\t"           \
    "ldi r22, 0 \n\t"          \
    "mul r7, r21 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r18 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r17 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r6, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r23, r0 \n\t"         \
    "adc r24, r25 \n\t"        \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ld r7, x+ \n\t"           \
    "ldi r23, 0 \n\t"          \
    "mul r8, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r19 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r18 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r16 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r6, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r24, r0 \n\t"         \
    "adc r22, r25 \n\t"        \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ld r8, x+ \n\t"           \
    "ldi r24, 0 \n\t"          \
    "mul r9, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r20 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r19 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r17 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r6, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r22, r0 \n\t"         \
    "adc r23, r25 \n\t"        \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ld r9, x+ \n\t"           \
    "ldi r22, 0 \n\t"          \
    "mul r10, r21 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r20 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r18 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r6, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r23, r0 \n\t"         \
    "adc r24, r25 \n\t"        \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ld r10, x+ \n\t"          \
    "ldi r23, 0 \n\t"          \
    "mul r11, r21 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r19 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r6, r16 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r12 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r24, r0 \n\t"         \
    "adc r22, r25 \n\t"        \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ld r11, x+ \n\t"          \
    "ldi r24, 0 \n\t"          \
    "mul r2, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r20 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r6, r17 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r13 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r12 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r22, r0 \n\t"         \
    "adc r23, r25 \n\t"        \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ld r2, x+ \n\t"           \
    "ldi r22, 0 \n\t"          \
    "mul r3, r21 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r6, r18 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r14 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r13 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r23, r0 \n\t"         \
    "adc r24, r25 \n\t"        \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ld r3, x+ \n\t"           \
    "ldi r23, 0 \n\t"          \
    "mul r4, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r6, r19 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r16 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r15 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r14 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r24, r0 \n\t"         \
    "adc r22, r25 \n\t"        \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ld r12, y+ \n\t"          \
    "ldi r24, 0 \n\t"          \
    "mul r4, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r6, r20 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r17 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r16 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r15 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r22, r0 \n\t"         \
    "adc r23, r25 \n\t"        \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ld r13, y+ \n\t"          \
    "ldi r22, 0 \n\t"          \
    "mul r4, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r6, r21 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r18 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r17 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r16 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r23, r0 \n\t"         \
    "adc r24, r25 \n\t"        \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ld r14, y+ \n\t"          \
    "ldi r23, 0 \n\t"          \
    "mul r4, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r6, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r19 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r18 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r17 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r16 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r24, r0 \n\t"         \
    "adc r22, r25 \n\t"        \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ld r15, y+ \n\t"          \
    "ldi r24, 0 \n\t"          \
    "mul r4, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r6, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r20 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r19 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r18 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r17 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r22, r0 \n\t"         \
    "adc r23, r25 \n\t"        \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ld r16, y+ \n\t"          \
    "ldi r22, 0 \n\t"          \
    "mul r4, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r6, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r21 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r20 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r19 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r18 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r23, r0 \n\t"         \
    "adc r24, r25 \n\t"        \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ld r17, y+ \n\t"          \
    "ldi r23, 0 \n\t"          \
    "mul r4, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r16 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r6, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r21 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r20 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r19 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r24, r0 \n\t"         \
    "adc r22, r25 \n\t"        \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ld r18, y+ \n\t"          \
    "ldi r24, 0 \n\t"          \
    "mul r4, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r17 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r6, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r12 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r21 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r20 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r22, r0 \n\t"         \
    "adc r23, r25 \n\t"        \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ld r19, y+ \n\t"          \
    "ldi r22, 0 \n\t"          \
    "mul r4, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r18 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r6, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r13 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r12 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r21 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r23, r0 \n\t"         \
    "adc r24, r25 \n\t"        \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ld r20, y+ \n\t"          \
    "ldi r23, 0 \n\t"          \
    "mul r4, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r19 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r6, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r16 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r14 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r13 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r24, r0 \n\t"         \
    "adc r22, r25 \n\t"        \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ld r21, y+ \n\t"          \
    "ldi r24, 0 \n\t"          \
    "mul r4, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r20 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r6, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r17 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r15 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r14 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r22, r0 \n\t"         \
    "adc r23, r25 \n\t"        \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ld r12, y+ \n\t"          \
    "ldi r22, 0 \n\t"          \
    "mul r4, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r21 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r6, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r18 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r16 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r15 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r23, r0 \n\t"         \
    "adc r24, r25 \n\t"        \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ld r13, y+ \n\t"          \
    "ldi r23, 0 \n\t"          \
    "mul r4, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r6, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r19 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r17 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r16 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r24, r0 \n\t"         \
    "adc r22, r25 \n\t"        \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ldi r24, 0 \n\t"          \
    "mul r5, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r6, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r20 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r18 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r17 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ldi r22, 0 \n\t"          \
    "mul r6, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r21 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r19 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r18 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ldi r23, 0 \n\t"          \
    "mul r7, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r20 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r19 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ldi r24, 0 \n\t"          \
    "mul r8, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r21 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r20 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ldi r22, 0 \n\t"          \
    "mul r9, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r12 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r21 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ldi r23, 0 \n\t"          \
    "mul r10, r13 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r12 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ldi r24, 0 \n\t"          \
    "mul r11, r13 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ldi r22, 0 \n\t"          \
    "mul r2, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "mul r3, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "st z+, r24 \n\t"          \
    "st z+, r22 \n\t"          \
                               \
    "sbiw r30, 54 \n\t"        \
    "sbiw r28, 32 \n\t"        \
    "sbiw r26, 22 \n\t"        \
    "ld r2, x+ \n\t"           \
    "ld r12, y+ \n\t"          \
    "ld r3, x+ \n\t"           \
    "ld r13, y+ \n\t"          \
    "ld r4, x+ \n\t"           \
    "ld r14, y+ \n\t"          \
    "ld r5, x+ \n\t"           \
    "ld r15, y+ \n\t"          \
    "ld r6, x+ \n\t"           \
    "ld r16, y+ \n\t"          \
    "ld r7, x+ \n\t"           \
    "ld r17, y+ \n\t"          \
    "ld r8, x+ \n\t"           \
    "ld r18, y+ \n\t"          \
    "ld r9, x+ \n\t"           \
    "ld r19, y+ \n\t"          \
    "ld r10, x+ \n\t"          \
    "ld r20, y+ \n\t"          \
    "ld r11, x+ \n\t"          \
    "ld r21, y+ \n\t"          \
                               \
    "ldi r23, 0 \n\t"          \
    "mul r2, r12 \n\t"         \
    "st z+, r0 \n\t"           \
    "mov r22, r1 \n\t"         \
                               \
    "ldi r24, 0 \n\t"          \
    "mul r2, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "mul r3, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ldi r22, 0 \n\t"          \
    "mul r2, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ldi r23, 0 \n\t"          \
    "mul r2, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ldi r24, 0 \n\t"          \
    "mul r2, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r6, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ldi r22, 0 \n\t"          \
    "mul r2, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r6, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ldi r23, 0 \n\t"          \
    "mul r2, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r16 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r6, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ldi r24, 0 \n\t"          \
    "mul r2, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r17 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r6, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ldi r22, 0 \n\t"          \
    "mul r2, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r18 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r6, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r12 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ldi r23, 0 \n\t"          \
    "mul r2, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r19 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r6, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r16 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r13 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r12 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ld r2, x+ \n\t"           \
    "ldi r24, 0 \n\t"          \
    "mul r3, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r20 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r6, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r17 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r14 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r13 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r22, r0 \n\t"         \
    "adc r23, r25 \n\t"        \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ld r3, x+ \n\t"           \
    "ldi r22, 0 \n\t"          \
    "mul r4, r21 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r6, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r18 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r15 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r14 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r23, r0 \n\t"         \
    "adc r24, r25 \n\t"        \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ld r4, x+ \n\t"           \
    "ldi r23, 0 \n\t"          \
    "mul r5, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r6, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r19 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r16 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r15 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r24, r0 \n\t"         \
    "adc r22, r25 \n\t"        \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ld r5, x+ \n\t"           \
    "ldi r24, 0 \n\t"          \
    "mul r6, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r20 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r17 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r16 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r22, r0 \n\t"         \
    "adc r23, r25 \n\t"        \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ld r6, x+ \n\t"           \
    "ldi r22, 0 \n\t"          \
    "mul r7, r21 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r18 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r17 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r6, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r23, r0 \n\t"         \
    "adc r24, r25 \n\t"        \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ld r7, x+ \n\t"           \
    "ldi r23, 0 \n\t"          \
    "mul r8, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r19 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r18 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r16 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r6, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r24, r0 \n\t"         \
    "adc r22, r25 \n\t"        \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ld r8, x+ \n\t"           \
    "ldi r24, 0 \n\t"          \
    "mul r9, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r20 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r19 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r17 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r6, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r22, r0 \n\t"         \
    "adc r23, r25 \n\t"        \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ld r9, x+ \n\t"           \
    "ldi r22, 0 \n\t"          \
    "mul r10, r21 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r20 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r18 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r6, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r23, r0 \n\t"         \
    "adc r24, r25 \n\t"        \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ld r10, x+ \n\t"          \
    "ldi r23, 0 \n\t"          \
    "mul r11, r21 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r19 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r6, r16 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r12 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r24, r0 \n\t"         \
    "adc r22, r25 \n\t"        \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ld r11, x+ \n\t"          \
    "ldi r24, 0 \n\t"          \
    "mul r2, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r20 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r6, r17 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r13 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r12 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r22, r0 \n\t"         \
    "adc r23, r25 \n\t"        \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ld r2, x+ \n\t"           \
    "ldi r22, 0 \n\t"          \
    "mul r3, r21 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r6, r18 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r14 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r13 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r23, r0 \n\t"         \
    "adc r24, r25 \n\t"        \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ld r3, x+ \n\t"           \
    "ldi r23, 0 \n\t"          \
    "mul r4, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r6, r19 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r16 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r15 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r14 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r24, r0 \n\t"         \
    "adc r22, r25 \n\t"        \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ld r4, x+ \n\t"           \
    "ldi r24, 0 \n\t"          \
    "mul r5, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r6, r20 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r17 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r16 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r15 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r22, r0 \n\t"         \
    "adc r23, r25 \n\t"        \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ld r5, x+ \n\t"           \
    "ldi r22, 0 \n\t"          \
    "mul r6, r21 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r18 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r17 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r16 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r23, r0 \n\t"         \
    "adc r24, r25 \n\t"        \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ld r6, x+ \n\t"           \
    "ldi r23, 0 \n\t"          \
    "mul r7, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r19 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r18 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r17 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r16 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r6, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r24, r0 \n\t"         \
    "adc r22, r25 \n\t"        \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ld r7, x+ \n\t"           \
    "ldi r24, 0 \n\t"          \
    "mul r8, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r20 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r19 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r18 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r17 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r6, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r22, r0 \n\t"         \
    "adc r23, r25 \n\t"        \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ld r8, x+ \n\t"           \
    "ldi r22, 0 \n\t"          \
    "mul r9, r21 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r20 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r19 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r18 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r6, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r23, r0 \n\t"         \
    "adc r24, r25 \n\t"        \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ld r9, x+ \n\t"           \
    "ldi r23, 0 \n\t"          \
    "mul r10, r21 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r20 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r19 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r16 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r6, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r24, r0 \n\t"         \
    "adc r22, r25 \n\t"        \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ld r10, x+ \n\t"          \
    "ldi r24, 0 \n\t"          \
    "mul r11, r21 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r20 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r4, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r17 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r6, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r12 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r22, r0 \n\t"         \
    "adc r23, r25 \n\t"        \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ld r11, x+ \n\t"          \
    "ldi r22, 0 \n\t"          \
    "mul r2, r21 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r4, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r18 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r6, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r13 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r12 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r23, r0 \n\t"         \
    "adc r24, r25 \n\t"        \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ld r2, x+ \n\t"           \
    "ldi r23, 0 \n\t"          \
    "mul r3, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r4, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r19 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r6, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r16 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r14 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r13 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r24, r0 \n\t"         \
    "adc r22, r25 \n\t"        \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ld r3, x+ \n\t"           \
    "ldi r24, 0 \n\t"          \
    "mul r4, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r20 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r6, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r17 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r15 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r14 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r22, r0 \n\t"         \
    "adc r23, r25 \n\t"        \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ld r12, y+ \n\t"          \
    "ldi r22, 0 \n\t"          \
    "mul r4, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r21 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r6, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r18 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r16 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r15 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r23, r0 \n\t"         \
    "adc r24, r25 \n\t"        \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ld r13, y+ \n\t"          \
    "ldi r23, 0 \n\t"          \
    "mul r4, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r6, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r19 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r17 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r16 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r24, r0 \n\t"         \
    "adc r22, r25 \n\t"        \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ld r14, y+ \n\t"          \
    "ldi r24, 0 \n\t"          \
    "mul r4, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r6, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r20 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r18 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r17 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r22, r0 \n\t"         \
    "adc r23, r25 \n\t"        \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ld r15, y+ \n\t"          \
    "ldi r22, 0 \n\t"          \
    "mul r4, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r6, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r21 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r19 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r18 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r23, r0 \n\t"         \
    "adc r24, r25 \n\t"        \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ld r16, y+ \n\t"          \
    "ldi r23, 0 \n\t"          \
    "mul r4, r16 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r6, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r20 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r19 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r24, r0 \n\t"         \
    "adc r22, r25 \n\t"        \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ld r17, y+ \n\t"          \
    "ldi r24, 0 \n\t"          \
    "mul r4, r17 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r6, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r21 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r20 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r22, r0 \n\t"         \
    "adc r23, r25 \n\t"        \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ld r18, y+ \n\t"          \
    "ldi r22, 0 \n\t"          \
    "mul r4, r18 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r6, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r12 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r21 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r23, r0 \n\t"         \
    "adc r24, r25 \n\t"        \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ld r19, y+ \n\t"          \
    "ldi r23, 0 \n\t"          \
    "mul r4, r19 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r6, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r16 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r13 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r12 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r24, r0 \n\t"         \
    "adc r22, r25 \n\t"        \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ld r20, y+ \n\t"          \
    "ldi r24, 0 \n\t"          \
    "mul r4, r20 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r6, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r17 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r14 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r13 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r22, r0 \n\t"         \
    "adc r23, r25 \n\t"        \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ld r21, y+ \n\t"          \
    "ldi r22, 0 \n\t"          \
    "mul r4, r21 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r6, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r18 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r15 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r14 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r23, r0 \n\t"         \
    "adc r24, r25 \n\t"        \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ld r12, y+ \n\t"          \
    "ldi r23, 0 \n\t"          \
    "mul r4, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r6, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r19 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r16 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r15 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r24, r0 \n\t"         \
    "adc r22, r25 \n\t"        \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ld r13, y+ \n\t"          \
    "ldi r24, 0 \n\t"          \
    "mul r4, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r6, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r20 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r17 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r16 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r22, r0 \n\t"         \
    "adc r23, r25 \n\t"        \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ld r14, y+ \n\t"          \
    "ldi r22, 0 \n\t"          \
    "mul r4, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r6, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r21 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r18 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r17 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r23, r0 \n\t"         \
    "adc r24, r25 \n\t"        \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ld r15, y+ \n\t"          \
    "ldi r23, 0 \n\t"          \
    "mul r4, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r6, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r19 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r18 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r16 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r24, r0 \n\t"         \
    "adc r22, r25 \n\t"        \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ld r16, y+ \n\t"          \
    "ldi r24, 0 \n\t"          \
    "mul r4, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r6, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r20 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r19 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r17 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r22, r0 \n\t"         \
    "adc r23, r25 \n\t"        \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ld r17, y+ \n\t"          \
    "ldi r22, 0 \n\t"          \
    "mul r4, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r6, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r21 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r20 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r18 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r23, r0 \n\t"         \
    "adc r24, r25 \n\t"        \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ld r18, y+ \n\t"          \
    "ldi r23, 0 \n\t"          \
    "mul r4, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r6, r16 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r14 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r12 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r21 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r19 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r24, r0 \n\t"         \
    "adc r22, r25 \n\t"        \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ld r19, y+ \n\t"          \
    "ldi r24, 0 \n\t"          \
    "mul r4, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r6, r17 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r15 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r13 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r12 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r20 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r22, r0 \n\t"         \
    "adc r23, r25 \n\t"        \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ld r20, y+ \n\t"          \
    "ldi r22, 0 \n\t"          \
    "mul r4, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r6, r18 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r16 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r14 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r13 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r21 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r23, r0 \n\t"         \
    "adc r24, r25 \n\t"        \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ld r21, y+ \n\t"          \
    "ldi r23, 0 \n\t"          \
    "mul r4, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r5, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r6, r19 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r17 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r16 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r15 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r14 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r24, r0 \n\t"         \
    "adc r22, r25 \n\t"        \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ld r12, y+ \n\t"          \
    "ldi r24, 0 \n\t"          \
    "mul r4, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r5, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r6, r20 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r18 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r17 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r16 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r15 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r14 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r22, r0 \n\t"         \
    "adc r23, r25 \n\t"        \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ld r13, y+ \n\t"          \
    "ldi r22, 0 \n\t"          \
    "mul r4, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r5, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r6, r21 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r7, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r19 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r18 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r17 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r16 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r15 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r14 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "ld r0, z \n\t"            \
    "add r23, r0 \n\t"         \
    "adc r24, r25 \n\t"        \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ldi r23, 0 \n\t"          \
    "mul r5, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r6, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r7, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r8, r20 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r19 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r18 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r17 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r16 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r15 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ldi r24, 0 \n\t"          \
    "mul r6, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r7, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r8, r21 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r9, r20 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r19 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r18 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r17 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r16 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ldi r22, 0 \n\t"          \
    "mul r7, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r8, r12 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r9, r21 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r10, r20 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r19 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r18 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r17 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ldi r23, 0 \n\t"          \
    "mul r8, r13 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r9, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r10, r21 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r11, r20 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r19 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r18 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ldi r24, 0 \n\t"          \
    "mul r9, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r10, r12 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r11, r21 \n\t"        \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r2, r20 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r19 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "ldi r22, 0 \n\t"          \
    "mul r10, r13 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r11, r12 \n\t"        \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r2, r21 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "mul r3, r20 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "adc r22, r25 \n\t"        \
    "st z+, r23 \n\t"          \
                               \
    "ldi r23, 0 \n\t"          \
    "mul r11, r13 \n\t"        \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r2, r12 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "mul r3, r21 \n\t"         \
    "add r24, r0 \n\t"         \
    "adc r22, r1 \n\t"         \
    "adc r23, r25 \n\t"        \
    "st z+, r24 \n\t"          \
                               \
    "ldi r24, 0 \n\t"          \
    "mul r2, r13 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "mul r3, r12 \n\t"         \
    "add r22, r0 \n\t"         \
    "adc r23, r1 \n\t"         \
    "adc r24, r25 \n\t"        \
    "st z+, r22 \n\t"          \
                               \
    "mul r3, r13 \n\t"         \
    "add r23, r0 \n\t"         \
    "adc r24, r1 \n\t"         \
    "st z+, r23 \n\t"          \
    "st z+, r24 \n\t"

#define FAST_SQUARE_ASM_20         \
    "ld r2, x+ \n\t"               \
    "ld r3, x+ \n\t"               \
    "ld r4, x+ \n\t"               \
    "ld r5, x+ \n\t"               \
    "ld r6, x+ \n\t"               \
    "ld r7, x+ \n\t"               \
    "ld r8, x+ \n\t"               \
    "ld r9, x+ \n\t"               \
    "ld r10, x+ \n\t"              \
    "ld r11, x+ \n\t"              \
    "ld r12, x+ \n\t"              \
    "ld r13, x+ \n\t"              \
    "ld r14, x+ \n\t"              \
    "ld r15, x+ \n\t"              \
    "ld r16, x+ \n\t"              \
    "ld r17, x+ \n\t"              \
    "ld r18, x+ \n\t"              \
    "ld r19, x+ \n\t"              \
    "ld r20, x+ \n\t"              \
    "ld r21, x+ \n\t"              \
    "push r26 \n\t"                \
    "push r27 \n\t"                \
    "ldi r25, 0 \n\t"              \
                                   \
    "ldi r23, 0 \n\t"              \
    "mul r2, r2 \n\t"              \
    "st z+, r0 \n\t"               \
    "mov r22, r1 \n\t"             \
                                   \
    "ldi r24, 0 \n\t"              \
    "mul r2, r3 \n\t"              \
    "lsl r0 \n\t"                  \
    "rol r1 \n\t"                  \
    "adc r24, r25 \n\t"            \
    "add r22, r0 \n\t"             \
    "adc r23, r1 \n\t"             \
    "adc r24, r25 \n\t"            \
    "st z+, r22 \n\t"              \
                                   \
    "ldi r22, 0 \n\t"              \
    "mul r2, r4 \n\t"              \
    "lsl r0 \n\t"                  \
    "rol r1 \n\t"                  \
    "adc r22, r25 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r3, r3 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r26, 0 \n\t"              \
    "mul r2, r5 \n\t"              \
    "mov r23, r0 \n\t"             \
    "mov r27, r1 \n\t"             \
    "mul r3, r4 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r27 \n\t"                 \
    "rol r26 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r27, r22 \n\t"            \
    "adc r26, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r22, 0 \n\t"              \
    "mul r2, r6 \n\t"              \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r3, r5 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r4, r4 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r27 \n\t"            \
    "adc r24, r26 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r26, 0 \n\t"              \
    "mul r2, r7 \n\t"              \
    "mov r23, r0 \n\t"             \
    "mov r27, r1 \n\t"             \
    "mul r3, r6 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r4, r5 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r27 \n\t"                 \
    "rol r26 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r27, r22 \n\t"            \
    "adc r26, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r22, 0 \n\t"              \
    "mul r2, r8 \n\t"              \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r3, r7 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r4, r6 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r5, r5 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r27 \n\t"            \
    "adc r24, r26 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r26, 0 \n\t"              \
    "mul r2, r9 \n\t"              \
    "mov r23, r0 \n\t"             \
    "mov r27, r1 \n\t"             \
    "mul r3, r8 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r4, r7 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r5, r6 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r27 \n\t"                 \
    "rol r26 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r27, r22 \n\t"            \
    "adc r26, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r22, 0 \n\t"              \
    "mul r2, r10 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r3, r9 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r4, r8 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r5, r7 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r6, r6 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r27 \n\t"            \
    "adc r24, r26 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r26, 0 \n\t"              \
    "mul r2, r11 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r27, r1 \n\t"             \
    "mul r3, r10 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r4, r9 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r5, r8 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r6, r7 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r27 \n\t"                 \
    "rol r26 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r27, r22 \n\t"            \
    "adc r26, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r22, 0 \n\t"              \
    "mul r2, r12 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r3, r11 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r4, r10 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r5, r9 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r6, r8 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r7, r7 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r27 \n\t"            \
    "adc r24, r26 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r26, 0 \n\t"              \
    "mul r2, r13 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r27, r1 \n\t"             \
    "mul r3, r12 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r4, r11 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r5, r10 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r6, r9 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r7, r8 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r27 \n\t"                 \
    "rol r26 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r27, r22 \n\t"            \
    "adc r26, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r22, 0 \n\t"              \
    "mul r2, r14 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r3, r13 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r4, r12 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r5, r11 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r6, r10 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r7, r9 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r8, r8 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r27 \n\t"            \
    "adc r24, r26 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r26, 0 \n\t"              \
    "mul r2, r15 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r27, r1 \n\t"             \
    "mul r3, r14 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r4, r13 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r5, r12 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r6, r11 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r7, r10 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r8, r9 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r27 \n\t"                 \
    "rol r26 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r27, r22 \n\t"            \
    "adc r26, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r22, 0 \n\t"              \
    "mul r2, r16 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r3, r15 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r4, r14 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r5, r13 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r6, r12 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r7, r11 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r8, r10 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r9, r9 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r27 \n\t"            \
    "adc r24, r26 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r26, 0 \n\t"              \
    "mul r2, r17 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r27, r1 \n\t"             \
    "mul r3, r16 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r4, r15 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r5, r14 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r6, r13 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r7, r12 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r8, r11 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r9, r10 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r27 \n\t"                 \
    "rol r26 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r27, r22 \n\t"            \
    "adc r26, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r22, 0 \n\t"              \
    "mul r2, r18 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r3, r17 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r4, r16 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r5, r15 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r6, r14 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r7, r13 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r8, r12 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r9, r11 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r10, r10 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r27 \n\t"            \
    "adc r24, r26 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r26, 0 \n\t"              \
    "mul r2, r19 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r27, r1 \n\t"             \
    "mul r3, r18 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r4, r17 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r5, r16 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r6, r15 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r7, r14 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r8, r13 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r9, r12 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r10, r11 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r27 \n\t"                 \
    "rol r26 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r27, r22 \n\t"            \
    "adc r26, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r22, 0 \n\t"              \
    "mul r2, r20 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r3, r19 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r4, r18 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r5, r17 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r6, r16 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r7, r15 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r8, r14 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r9, r13 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r10, r12 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r11, r11 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r27 \n\t"            \
    "adc r24, r26 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r26, 0 \n\t"              \
    "mul r2, r21 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r27, r1 \n\t"             \
    "mul r3, r20 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r4, r19 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r5, r18 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r6, r17 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r7, r16 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r8, r15 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r9, r14 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r10, r13 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r11, r12 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r27 \n\t"                 \
    "rol r26 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r27, r22 \n\t"            \
    "adc r26, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r22, 0 \n\t"              \
    "mul r3, r21 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r4, r20 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r5, r19 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r6, r18 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r7, r17 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r8, r16 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r9, r15 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r10, r14 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r11, r13 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r12, r12 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r27 \n\t"            \
    "adc r24, r26 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r26, 0 \n\t"              \
    "mul r4, r21 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r27, r1 \n\t"             \
    "mul r5, r20 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r6, r19 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r7, r18 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r8, r17 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r9, r16 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r10, r15 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r11, r14 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r12, r13 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r27 \n\t"                 \
    "rol r26 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r27, r22 \n\t"            \
    "adc r26, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r22, 0 \n\t"              \
    "mul r5, r21 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r6, r20 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r7, r19 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r8, r18 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r9, r17 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r10, r16 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r11, r15 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r12, r14 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r13, r13 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r27 \n\t"            \
    "adc r24, r26 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r26, 0 \n\t"              \
    "mul r6, r21 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r27, r1 \n\t"             \
    "mul r7, r20 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r8, r19 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r9, r18 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r10, r17 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r11, r16 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r12, r15 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r13, r14 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r27 \n\t"                 \
    "rol r26 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r27, r22 \n\t"            \
    "adc r26, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r22, 0 \n\t"              \
    "mul r7, r21 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r8, r20 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r9, r19 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r10, r18 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r11, r17 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r12, r16 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r13, r15 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r14, r14 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r27 \n\t"            \
    "adc r24, r26 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r26, 0 \n\t"              \
    "mul r8, r21 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r27, r1 \n\t"             \
    "mul r9, r20 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r10, r19 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r11, r18 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r12, r17 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r13, r16 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r14, r15 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r27 \n\t"                 \
    "rol r26 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r27, r22 \n\t"            \
    "adc r26, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r22, 0 \n\t"              \
    "mul r9, r21 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r10, r20 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r11, r19 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r12, r18 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r13, r17 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r14, r16 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r15, r15 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r27 \n\t"            \
    "adc r24, r26 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r26, 0 \n\t"              \
    "mul r10, r21 \n\t"            \
    "mov r23, r0 \n\t"             \
    "mov r27, r1 \n\t"             \
    "mul r11, r20 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r12, r19 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r13, r18 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r14, r17 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r15, r16 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r27 \n\t"                 \
    "rol r26 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r27, r22 \n\t"            \
    "adc r26, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r22, 0 \n\t"              \
    "mul r11, r21 \n\t"            \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r12, r20 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r13, r19 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r14, r18 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r15, r17 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r16, r16 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r27 \n\t"            \
    "adc r24, r26 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r26, 0 \n\t"              \
    "mul r12, r21 \n\t"            \
    "mov r23, r0 \n\t"             \
    "mov r27, r1 \n\t"             \
    "mul r13, r20 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r14, r19 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r15, r18 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r16, r17 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r27 \n\t"                 \
    "rol r26 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r27, r22 \n\t"            \
    "adc r26, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r22, 0 \n\t"              \
    "mul r13, r21 \n\t"            \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r14, r20 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r15, r19 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r16, r18 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r17, r17 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r27 \n\t"            \
    "adc r24, r26 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r26, 0 \n\t"              \
    "mul r14, r21 \n\t"            \
    "mov r23, r0 \n\t"             \
    "mov r27, r1 \n\t"             \
    "mul r15, r20 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r16, r19 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r17, r18 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r27 \n\t"                 \
    "rol r26 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r27, r22 \n\t"            \
    "adc r26, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r22, 0 \n\t"              \
    "mul r15, r21 \n\t"            \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r16, r20 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r17, r19 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r18, r18 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r27 \n\t"            \
    "adc r24, r26 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r26, 0 \n\t"              \
    "mul r16, r21 \n\t"            \
    "mov r23, r0 \n\t"             \
    "mov r27, r1 \n\t"             \
    "mul r17, r20 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "mul r18, r19 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r27 \n\t"                 \
    "rol r26 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r27, r22 \n\t"            \
    "adc r26, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r22, 0 \n\t"              \
    "mul r17, r21 \n\t"            \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r18, r20 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r19, r19 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r27 \n\t"            \
    "adc r24, r26 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r26, 0 \n\t"              \
    "mul r18, r21 \n\t"            \
    "mov r23, r0 \n\t"             \
    "mov r27, r1 \n\t"             \
    "mul r19, r20 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "adc r26, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r27 \n\t"                 \
    "rol r26 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r27, r22 \n\t"            \
    "adc r26, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r23, 0 \n\t"              \
    "mul r19, r21 \n\t"            \
    "lsl r0 \n\t"                  \
    "rol r1 \n\t"                  \
    "adc r23, r25 \n\t"            \
    "add r27, r0 \n\t"             \
    "adc r26, r1 \n\t"             \
    "adc r23, r25 \n\t"            \
    "mul r20, r20 \n\t"            \
    "add r27, r0 \n\t"             \
    "adc r26, r1 \n\t"             \
    "adc r23, r25 \n\t"            \
    "st z+, r27 \n\t"              \
                                   \
    "ldi r27, 0 \n\t"              \
    "mul r20, r21 \n\t"            \
    "lsl r0 \n\t"                  \
    "rol r1 \n\t"                  \
    "adc r27, r25 \n\t"            \
    "add r26, r0 \n\t"             \
    "adc r23, r1 \n\t"             \
    "adc r27, r25 \n\t"            \
    "st z+, r26 \n\t"              \
                                   \
    "mul r21, r21 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r27, r1 \n\t"             \
    "st z+, r23 \n\t"              \
    "st z+, r27 \n\t"              \
    "pop r27 \n\t"                 \
    "pop r26 \n\t"

#define FAST_SQUARE_ASM_20_TO_24           \
    "cpi r20, 20 \n\t"                     \
    "brne 1f \n\t"                         \
    "jmp 2f \n\t"                          \
    "1: \n\t"                              \
    "ld r2, x+ \n\t"                       \
    "ld r3, x+ \n\t"                       \
    "ld r4, x+ \n\t"                       \
    "ld r5, x+ \n\t"                       \
    "sbiw r26, 24 \n\t"                    \
    "sbiw r30, 20 \n\t"                    \
    "ld r6, x+ \n\t"                       \
    "ld r7, x+ \n\t"                       \
    "ld r8, x+ \n\t"                       \
    "ld r9, x+ \n\t"                       \
                                           \
    "mul r2, r6 \n\t"                      \
    "mov r10, r0 \n\t"                     \
    "mov r11, r1 \n\t"                     \
    "mov r12, r25 \n\t"                    \
    "mov r13, r25 \n\t"                    \
    "mul r2, r7 \n\t"                      \
    "add r11, r0 \n\t"                     \
    "adc r12, r1 \n\t"                     \
    "adc r13, r25 \n\t"                    \
    "mul r3, r6 \n\t"                      \
    "add r11, r0 \n\t"                     \
    "adc r12, r1 \n\t"                     \
    "adc r13, r25 \n\t"                    \
                                           \
    "mov r14, r25 \n\t"                    \
    "mul r2, r8 \n\t"                      \
    "add r12, r0 \n\t"                     \
    "adc r13, r1 \n\t"                     \
    "adc r14, r25 \n\t"                    \
    "mul r3, r7 \n\t"                      \
    "add r12, r0 \n\t"                     \
    "adc r13, r1 \n\t"                     \
    "adc r14, r25 \n\t"                    \
    "mul r4, r6 \n\t"                      \
    "add r12, r0 \n\t"                     \
    "adc r13, r1 \n\t"                     \
    "adc r14, r25 \n\t"                    \
                                           \
    "mov r15, r25 \n\t"                    \
    "mul r2, r9 \n\t"                      \
    "add r13, r0 \n\t"                     \
    "adc r14, r1 \n\t"                     \
    "adc r15, r25 \n\t"                    \
    "mul r3, r8 \n\t"                      \
    "add r13, r0 \n\t"                     \
    "adc r14, r1 \n\t"                     \
    "adc r15, r25 \n\t"                    \
    "mul r4, r7 \n\t"                      \
    "add r13, r0 \n\t"                     \
    "adc r14, r1 \n\t"                     \
    "adc r15, r25 \n\t"                    \
    "mul r5, r6 \n\t"                      \
    "add r13, r0 \n\t"                     \
    "adc r14, r1 \n\t"                     \
    "adc r15, r25 \n\t"                    \
                                           \
    "ld r6, x+ \n\t"                       \
    "mov r16, r25 \n\t"                    \
    "mul r2, r6 \n\t"                      \
    "add r14, r0 \n\t"                     \
    "adc r15, r1 \n\t"                     \
    "adc r16, r25 \n\t"                    \
    "mul r3, r9 \n\t"                      \
    "add r14, r0 \n\t"                     \
    "adc r15, r1 \n\t"                     \
    "adc r16, r25 \n\t"                    \
    "mul r4, r8 \n\t"                      \
    "add r14, r0 \n\t"                     \
    "adc r15, r1 \n\t"                     \
    "adc r16, r25 \n\t"                    \
    "mul r5, r7 \n\t"                      \
    "add r14, r0 \n\t"                     \
    "adc r15, r1 \n\t"                     \
    "adc r16, r25 \n\t"                    \
                                           \
    "ld r7, x+ \n\t"                       \
    "mov r17, r25 \n\t"                    \
    "mul r2, r7 \n\t"                      \
    "add r15, r0 \n\t"                     \
    "adc r16, r1 \n\t"                     \
    "adc r17, r25 \n\t"                    \
    "mul r3, r6 \n\t"                      \
    "add r15, r0 \n\t"                     \
    "adc r16, r1 \n\t"                     \
    "adc r17, r25 \n\t"                    \
    "mul r4, r9 \n\t"                      \
    "add r15, r0 \n\t"                     \
    "adc r16, r1 \n\t"                     \
    "adc r17, r25 \n\t"                    \
    "mul r5, r8 \n\t"                      \
    "add r15, r0 \n\t"                     \
    "adc r16, r1 \n\t"                     \
    "adc r17, r25 \n\t"                    \
                                           \
    "ld r8, x+ \n\t"                       \
    "mov r18, r25 \n\t"                    \
    "mul r2, r8 \n\t"                      \
    "add r16, r0 \n\t"                     \
    "adc r17, r1 \n\t"                     \
    "adc r18, r25 \n\t"                    \
    "mul r3, r7 \n\t"                      \
    "add r16, r0 \n\t"                     \
    "adc r17, r1 \n\t"                     \
    "adc r18, r25 \n\t"                    \
    "mul r4, r6 \n\t"                      \
    "add r16, r0 \n\t"                     \
    "adc r17, r1 \n\t"                     \
    "adc r18, r25 \n\t"                    \
    "mul r5, r9 \n\t"                      \
    "add r16, r0 \n\t"                     \
    "adc r17, r1 \n\t"                     \
    "adc r18, r25 \n\t"                    \
                                           \
    "ld r9, x+ \n\t"                       \
    "mov r19, r25 \n\t"                    \
    "mul r2, r9 \n\t"                      \
    "add r17, r0 \n\t"                     \
    "adc r18, r1 \n\t"                     \
    "adc r19, r25 \n\t"                    \
    "mul r3, r8 \n\t"                      \
    "add r17, r0 \n\t"                     \
    "adc r18, r1 \n\t"                     \
    "adc r19, r25 \n\t"                    \
    "mul r4, r7 \n\t"                      \
    "add r17, r0 \n\t"                     \
    "adc r18, r1 \n\t"                     \
    "adc r19, r25 \n\t"                    \
    "mul r5, r6 \n\t"                      \
    "add r17, r0 \n\t"                     \
    "adc r18, r1 \n\t"                     \
    "adc r19, r25 \n\t"                    \
                                           \
    "ld r6, x+ \n\t"                       \
    "mov r21, r25 \n\t"                    \
    "mul r2, r6 \n\t"                      \
    "add r18, r0 \n\t"                     \
    "adc r19, r1 \n\t"                     \
    "adc r21, r25 \n\t"                    \
    "mul r3, r9 \n\t"                      \
    "add r18, r0 \n\t"                     \
    "adc r19, r1 \n\t"                     \
    "adc r21, r25 \n\t"                    \
    "mul r4, r8 \n\t"                      \
    "add r18, r0 \n\t"                     \
    "adc r19, r1 \n\t"                     \
    "adc r21, r25 \n\t"                    \
    "mul r5, r7 \n\t"                      \
    "add r18, r0 \n\t"                     \
    "adc r19, r1 \n\t"                     \
    "adc r21, r25 \n\t"                    \
                                           \
    "ld r7, x+ \n\t"                       \
    "mov r22, r25 \n\t"                    \
    "mul r2, r7 \n\t"                      \
    "add r19, r0 \n\t"                     \
    "adc r21, r1 \n\t"                     \
    "adc r22, r25 \n\t"                    \
    "mul r3, r6 \n\t"                      \
    "add r19, r0 \n\t"                     \
    "adc r21, r1 \n\t"                     \
    "adc r22, r25 \n\t"                    \
    "mul r4, r9 \n\t"                      \
    "add r19, r0 \n\t"                     \
    "adc r21, r1 \n\t"                     \
    "adc r22, r25 \n\t"                    \
    "mul r5, r8 \n\t"                      \
    "add r19, r0 \n\t"                     \
    "adc r21, r1 \n\t"                     \
    "adc r22, r25 \n\t"                    \
                                           \
    "ld r8, x+ \n\t"                       \
    "mov r23, r25 \n\t"                    \
    "mul r2, r8 \n\t"                      \
    "add r21, r0 \n\t"                     \
    "adc r22, r1 \n\t"                     \
    "adc r23, r25 \n\t"                    \
    "mul r3, r7 \n\t"                      \
    "add r21, r0 \n\t"                     \
    "adc r22, r1 \n\t"                     \
    "adc r23, r25 \n\t"                    \
    "mul r4, r6 \n\t"                      \
    "add r21, r0 \n\t"                     \
    "adc r22, r1 \n\t"                     \
    "adc r23, r25 \n\t"                    \
    "mul r5, r9 \n\t"                      \
    "add r21, r0 \n\t"                     \
    "adc r22, r1 \n\t"                     \
    "adc r23, r25 \n\t"                    \
                                           \
    "ld r9, x+ \n\t"                       \
    "mov r24, r25 \n\t"                    \
    "mul r2, r9 \n\t"                      \
    "add r22, r0 \n\t"                     \
    "adc r23, r1 \n\t"                     \
    "adc r24, r25 \n\t"                    \
    "mul r3, r8 \n\t"                      \
    "add r22, r0 \n\t"                     \
    "adc r23, r1 \n\t"                     \
    "adc r24, r25 \n\t"                    \
    "mul r4, r7 \n\t"                      \
    "add r22, r0 \n\t"                     \
    "adc r23, r1 \n\t"                     \
    "adc r24, r25 \n\t"                    \
    "mul r5, r6 \n\t"                      \
    "add r22, r0 \n\t"                     \
    "adc r23, r1 \n\t"                     \
    "adc r24, r25 \n\t"                    \
                                           \
    "ld r6, x+ \n\t"                       \
    "mov r28, r25 \n\t"                    \
    "mul r2, r6 \n\t"                      \
    "add r23, r0 \n\t"                     \
    "adc r24, r1 \n\t"                     \
    "adc r28, r25 \n\t"                    \
    "mul r3, r9 \n\t"                      \
    "add r23, r0 \n\t"                     \
    "adc r24, r1 \n\t"                     \
    "adc r28, r25 \n\t"                    \
    "mul r4, r8 \n\t"                      \
    "add r23, r0 \n\t"                     \
    "adc r24, r1 \n\t"                     \
    "adc r28, r25 \n\t"                    \
    "mul r5, r7 \n\t"                      \
    "add r23, r0 \n\t"                     \
    "adc r24, r1 \n\t"                     \
    "adc r28, r25 \n\t"                    \
                                           \
    "ld r7, x+ \n\t"                       \
    "mov r29, r25 \n\t"                    \
    "mul r2, r7 \n\t"                      \
    "add r24, r0 \n\t"                     \
    "adc r28, r1 \n\t"                     \
    "adc r29, r25 \n\t"                    \
    "mul r3, r6 \n\t"                      \
    "add r24, r0 \n\t"                     \
    "adc r28, r1 \n\t"                     \
    "adc r29, r25 \n\t"                    \
    "mul r4, r9 \n\t"                      \
    "add r24, r0 \n\t"                     \
    "adc r28, r1 \n\t"                     \
    "adc r29, r25 \n\t"                    \
    "mul r5, r8 \n\t"                      \
    "add r24, r0 \n\t"                     \
    "adc r28, r1 \n\t"                     \
    "adc r29, r25 \n\t"                    \
                                           \
    "lsl r10 \n\t"                         \
    "rol r11 \n\t"                         \
    "rol r12 \n\t"                         \
    "rol r13 \n\t"                         \
    "rol r14 \n\t"                         \
    "rol r15 \n\t"                         \
    "rol r16 \n\t"                         \
    "rol r17 \n\t"                         \
    "rol r18 \n\t"                         \
    "rol r19 \n\t"                         \
    "rol r21 \n\t"                         \
    "rol r22 \n\t"                         \
    "rol r23 \n\t"                         \
    "rol r24 \n\t"                         \
    "rol r28 \n\t"                         \
    "rol r29 \n\t"                         \
    "ld r0, z \n\t"                        \
    "add r10, r0 \n\t"                     \
    "st z+, r10 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r11, r0 \n\t"                     \
    "st z+, r11 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r12, r0 \n\t"                     \
    "st z+, r12 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r13, r0 \n\t"                     \
    "st z+, r13 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r14, r0 \n\t"                     \
    "st z+, r14 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r15, r0 \n\t"                     \
    "st z+, r15 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r16, r0 \n\t"                     \
    "st z+, r16 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r17, r0 \n\t"                     \
    "st z+, r17 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r18, r0 \n\t"                     \
    "st z+, r18 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r19, r0 \n\t"                     \
    "st z+, r19 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r21, r0 \n\t"                     \
    "st z+, r21 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r22, r0 \n\t"                     \
    "st z+, r22 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r23, r0 \n\t"                     \
    "st z+, r23 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r24, r0 \n\t"                     \
    "st z+, r24 \n\t"                      \
    "adc r28, r25 \n\t"                    \
    "adc r29, r25 \n\t"                    \
    "bst r28, 0 \n\t"                      \
    "lsr r29 \n\t"                         \
    "ror r28 \n\t"                         \
                                           \
    "ld r8, x+ \n\t"                       \
    "mov r10, r25 \n\t"                    \
    "mul r2, r8 \n\t"                      \
    "add r28, r0 \n\t"                     \
    "adc r29, r1 \n\t"                     \
    "adc r10, r25 \n\t"                    \
    "mul r3, r7 \n\t"                      \
    "add r28, r0 \n\t"                     \
    "adc r29, r1 \n\t"                     \
    "adc r10, r25 \n\t"                    \
    "mul r4, r6 \n\t"                      \
    "add r28, r0 \n\t"                     \
    "adc r29, r1 \n\t"                     \
    "adc r10, r25 \n\t"                    \
    "mul r5, r9 \n\t"                      \
    "add r28, r0 \n\t"                     \
    "adc r29, r1 \n\t"                     \
    "adc r10, r25 \n\t"                    \
                                           \
    "ld r9, x+ \n\t"                       \
    "mov r11, r25 \n\t"                    \
    "mul r2, r9 \n\t"                      \
    "add r29, r0 \n\t"                     \
    "adc r10, r1 \n\t"                     \
    "adc r11, r25 \n\t"                    \
    "mul r3, r8 \n\t"                      \
    "add r29, r0 \n\t"                     \
    "adc r10, r1 \n\t"                     \
    "adc r11, r25 \n\t"                    \
    "mul r4, r7 \n\t"                      \
    "add r29, r0 \n\t"                     \
    "adc r10, r1 \n\t"                     \
    "adc r11, r25 \n\t"                    \
    "mul r5, r6 \n\t"                      \
    "add r29, r0 \n\t"                     \
    "adc r10, r1 \n\t"                     \
    "adc r11, r25 \n\t"                    \
                                           \
    "ld r6, x+ \n\t"                       \
    "mov r12, r25 \n\t"                    \
    "mul r2, r6 \n\t"                      \
    "add r10, r0 \n\t"                     \
    "adc r11, r1 \n\t"                     \
    "adc r12, r25 \n\t"                    \
    "mul r3, r9 \n\t"                      \
    "add r10, r0 \n\t"                     \
    "adc r11, r1 \n\t"                     \
    "adc r12, r25 \n\t"                    \
    "mul r4, r8 \n\t"                      \
    "add r10, r0 \n\t"                     \
    "adc r11, r1 \n\t"                     \
    "adc r12, r25 \n\t"                    \
    "mul r5, r7 \n\t"                      \
    "add r10, r0 \n\t"                     \
    "adc r11, r1 \n\t"                     \
    "adc r12, r25 \n\t"                    \
                                           \
    "ld r7, x+ \n\t"                       \
    "mov r13, r25 \n\t"                    \
    "mul r2, r7 \n\t"                      \
    "add r11, r0 \n\t"                     \
    "adc r12, r1 \n\t"                     \
    "adc r13, r25 \n\t"                    \
    "mul r3, r6 \n\t"                      \
    "add r11, r0 \n\t"                     \
    "adc r12, r1 \n\t"                     \
    "adc r13, r25 \n\t"                    \
    "mul r4, r9 \n\t"                      \
    "add r11, r0 \n\t"                     \
    "adc r12, r1 \n\t"                     \
    "adc r13, r25 \n\t"                    \
    "mul r5, r8 \n\t"                      \
    "add r11, r0 \n\t"                     \
    "adc r12, r1 \n\t"                     \
    "adc r13, r25 \n\t"                    \
                                           \
    "ld r8, x+ \n\t"                       \
    "mov r14, r25 \n\t"                    \
    "mul r2, r8 \n\t"                      \
    "add r12, r0 \n\t"                     \
    "adc r13, r1 \n\t"                     \
    "adc r14, r25 \n\t"                    \
    "mul r3, r7 \n\t"                      \
    "add r12, r0 \n\t"                     \
    "adc r13, r1 \n\t"                     \
    "adc r14, r25 \n\t"                    \
    "mul r4, r6 \n\t"                      \
    "add r12, r0 \n\t"                     \
    "adc r13, r1 \n\t"                     \
    "adc r14, r25 \n\t"                    \
    "mul r5, r9 \n\t"                      \
    "add r12, r0 \n\t"                     \
    "adc r13, r1 \n\t"                     \
    "adc r14, r25 \n\t"                    \
                                           \
    "ld r9, x+ \n\t"                       \
    "mov r15, r25 \n\t"                    \
    "mul r2, r9 \n\t"                      \
    "add r13, r0 \n\t"                     \
    "adc r14, r1 \n\t"                     \
    "adc r15, r25 \n\t"                    \
    "mul r3, r8 \n\t"                      \
    "add r13, r0 \n\t"                     \
    "adc r14, r1 \n\t"                     \
    "adc r15, r25 \n\t"                    \
    "mul r4, r7 \n\t"                      \
    "add r13, r0 \n\t"                     \
    "adc r14, r1 \n\t"                     \
    "adc r15, r25 \n\t"                    \
    "mul r5, r6 \n\t"                      \
    "add r13, r0 \n\t"                     \
    "adc r14, r1 \n\t"                     \
    "adc r15, r25 \n\t"                    \
                                           \
    "lsl r28 \n\t"                         \
    "bld r28, 0 \n\t"                      \
    "rol r29 \n\t"                         \
    "rol r10 \n\t"                         \
    "rol r11 \n\t"                         \
    "rol r12 \n\t"                         \
    "rol r13 \n\t"                         \
    "rol r14 \n\t"                         \
    "rol r15 \n\t"                         \
    "ld r0, z \n\t"                        \
    "add r28, r0 \n\t"                     \
    "st z+, r28 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r29, r0 \n\t"                     \
    "st z+, r29 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r10, r0 \n\t"                     \
    "st z+, r10 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r11, r0 \n\t"                     \
    "st z+, r11 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r12, r0 \n\t"                     \
    "st z+, r12 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r13, r0 \n\t"                     \
    "st z+, r13 \n\t"                      \
    "adc r14, r25 \n\t"                    \
    "adc r15, r25 \n\t"                    \
                                           \
    "mul r2, r2 \n\t"                      \
    "mov r16, r0 \n\t"                     \
    "mov r17, r1 \n\t"                     \
    "mul r3, r3 \n\t"                      \
    "mov r18, r0 \n\t"                     \
    "mov r19, r1 \n\t"                     \
    "mul r4, r4 \n\t"                      \
    "mov r21, r0 \n\t"                     \
    "mov r22, r1 \n\t"                     \
    "mul r5, r5 \n\t"                      \
    "mov r23, r0 \n\t"                     \
    "mov r24, r1 \n\t"                     \
    "add r16, r14 \n\t"                    \
    "adc r17, r15 \n\t"                    \
    "adc r18, r25 \n\t"                    \
    "adc r19, r25 \n\t"                    \
                                           \
    "mul r7, r5 \n\t"                      \
    "mov r14, r0 \n\t"                     \
    "mov r15, r1 \n\t"                     \
    "mov r28, r25 \n\t"                    \
    "mul r8, r4 \n\t"                      \
    "add r14, r0 \n\t"                     \
    "adc r15, r1 \n\t"                     \
    "adc r28, r25 \n\t"                    \
    "mul r9, r3 \n\t"                      \
    "add r14, r0 \n\t"                     \
    "adc r15, r1 \n\t"                     \
    "adc r28, r25 \n\t"                    \
    "mov r29, r25 \n\t"                    \
    "mul r8, r5 \n\t"                      \
    "add r15, r0 \n\t"                     \
    "adc r28, r1 \n\t"                     \
    "adc r29, r25 \n\t"                    \
    "mul r9, r4 \n\t"                      \
    "add r15, r0 \n\t"                     \
    "adc r28, r1 \n\t"                     \
    "adc r29, r25 \n\t"                    \
    "mul r2, r3 \n\t"                      \
    "add r15, r0 \n\t"                     \
    "adc r28, r1 \n\t"                     \
    "adc r29, r25 \n\t"                    \
    "mov r10, r25 \n\t"                    \
    "mul r9, r5 \n\t"                      \
    "add r28, r0 \n\t"                     \
    "adc r29, r1 \n\t"                     \
    "adc r10, r25 \n\t"                    \
    "mul r2, r4 \n\t"                      \
    "add r28, r0 \n\t"                     \
    "adc r29, r1 \n\t"                     \
    "adc r10, r25 \n\t"                    \
    "mov r11, r25 \n\t"                    \
    "mul r2, r5 \n\t"                      \
    "add r29, r0 \n\t"                     \
    "adc r10, r1 \n\t"                     \
    "adc r11, r25 \n\t"                    \
    "mul r3, r4 \n\t"                      \
    "add r29, r0 \n\t"                     \
    "adc r10, r1 \n\t"                     \
    "adc r11, r25 \n\t"                    \
    "mov r12, r25 \n\t"                    \
    "mul r3, r5 \n\t"                      \
    "add r10, r0 \n\t"                     \
    "adc r11, r1 \n\t"                     \
    "adc r12, r25 \n\t"                    \
    "mul r4, r5 \n\t"                      \
    "add r11, r0 \n\t"                     \
    "adc r12, r1 \n\t"                     \
                                           \
    "lsl r14 \n\t"                         \
    "rol r15 \n\t"                         \
    "rol r28 \n\t"                         \
    "rol r29 \n\t"                         \
    "rol r10 \n\t"                         \
    "rol r11 \n\t"                         \
    "rol r12 \n\t"                         \
    "adc r24, r25 \n\t"                    \
    "add r16, r14 \n\t"                    \
    "adc r17, r15 \n\t"                    \
    "adc r18, r28 \n\t"                    \
    "adc r19, r29 \n\t"                    \
    "adc r21, r10 \n\t"                    \
    "adc r22, r11 \n\t"                    \
    "adc r23, r12 \n\t"                    \
    "adc r24, r25 \n\t"                    \
                                           \
    "st z+, r16 \n\t"                      \
    "st z+, r17 \n\t"                      \
    "st z+, r18 \n\t"                      \
    "st z+, r19 \n\t"                      \
    "st z+, r21 \n\t"                      \
    "st z+, r22 \n\t"                      \
    "st z+, r23 \n\t"                      \
    "st z+, r24 \n\t"                      \
    "adiw r26, 4 \n\t"

#define FAST_SQUARE_ASM_24             \
    "ldi r25, 0 \n\t"                  \
    "movw r28, r26 \n\t"               \
    "ld r2, x+ \n\t"                   \
    "ld r3, x+ \n\t"                   \
    "adiw r28, 20 \n\t"                \
    "ld r12, y+ \n\t"                  \
    "ld r13, y+ \n\t"                  \
    "adiw r30, 20 \n\t"                \
                                       \
    "ldi r23, 0 \n\t"                  \
    "mul 2, 12 \n\t"                   \
    "st z+, r0 \n\t"                   \
    "mov r22, r1 \n\t"                 \
                                       \
    "ldi r24, 0 \n\t"                  \
    "mul r2, r13 \n\t"                 \
    "add r22, r0 \n\t"                 \
    "adc r23, r1 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "st z+, r22 \n\t"                  \
                                       \
    "ld r12, y+ \n\t"                  \
    "ldi r22, 0 \n\t"                  \
    "mul r2, r12 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r3, r13 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ld r13, y+ \n\t"                  \
    "ldi r23, 0 \n\t"                  \
    "mul r2, r13 \n\t"                 \
    "add r24, r0 \n\t"                 \
    "adc r22, r1 \n\t"                 \
    "adc r23, r25 \n\t"                \
    "mul r3, r12 \n\t"                 \
    "add r24, r0 \n\t"                 \
    "adc r22, r1 \n\t"                 \
    "adc r23, r25 \n\t"                \
    "st z+, r24 \n\t"                  \
                                       \
    "ld r2, x+ \n\t"                   \
    "ldi r24, 0 \n\t"                  \
    "mul r3, r13 \n\t"                 \
    "add r22, r0 \n\t"                 \
    "adc r23, r1 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "mul r2, r12 \n\t"                 \
    "add r22, r0 \n\t"                 \
    "adc r23, r1 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "st z+, r22 \n\t"                  \
                                       \
    "ld r3, x+ \n\t"                   \
    "ldi r22, 0 \n\t"                  \
    "mul r2, r13 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "mul r3, r13 \n\t"                 \
    "add r24, r0 \n\t"                 \
    "adc r22, r1 \n\t"                 \
    "st z+, r24 \n\t"                  \
    "st z+, r22 \n\t"                  \
                                       \
    "sbiw r26, 4 \n\t"                 \
    "sbiw r30, 28 \n\t"                \
    "ld r2, x+ \n\t"                   \
    "ld r3, x+ \n\t"                   \
    "ld r4, x+ \n\t"                   \
    "ld r5, x+ \n\t"                   \
    "ld r6, x+ \n\t"                   \
    "ld r7, x+ \n\t"                   \
    "ld r8, x+ \n\t"                   \
    "ld r9, x+ \n\t"                   \
    "ld r10, x+ \n\t"                  \
    "ld r11, x+ \n\t"                  \
    "ld r12, x+ \n\t"                  \
    "ld r13, x+ \n\t"                  \
    "ld r14, x+ \n\t"                  \
    "ld r15, x+ \n\t"                  \
    "ld r16, x+ \n\t"                  \
    "ld r17, x+ \n\t"                  \
    "ld r18, x+ \n\t"                  \
    "ld r19, x+ \n\t"                  \
    "ld r20, x+ \n\t"                  \
    "ld r21, x+ \n\t"                  \
                                       \
    "ldi r23, 0 \n\t"                  \
    "mul r2, r2 \n\t"                  \
    "st z+, r0 \n\t"                   \
    "mov r22, r1 \n\t"                 \
                                       \
    "ldi r24, 0 \n\t"                  \
    "mul r2, r3 \n\t"                  \
    "add r22, r0 \n\t"                 \
    "adc r23, r1 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "add r22, r0 \n\t"                 \
    "adc r23, r1 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "st z+, r22 \n\t"                  \
                                       \
    "ldi r22, 0 \n\t"                  \
    "mul r2, r4 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r3, r3 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r2, r5 \n\t"                  \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r3, r4 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r22, 0 \n\t"                  \
    "mul r2, r6 \n\t"                  \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r3, r5 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r4, r4 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r2, r7 \n\t"                  \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r3, r6 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r4, r5 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r22, 0 \n\t"                  \
    "mul r2, r8 \n\t"                  \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r3, r7 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r4, r6 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r5, r5 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r2, r9 \n\t"                  \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r3, r8 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r4, r7 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r5, r6 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r22, 0 \n\t"                  \
    "mul r2, r10 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r3, r9 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r4, r8 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r5, r7 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r6, r6 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r2, r11 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r3, r10 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r4, r9 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r5, r8 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r6, r7 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r22, 0 \n\t"                  \
    "mul r2, r12 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r3, r11 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r4, r10 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r5, r9 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r6, r8 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r7, r7 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r2, r13 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r3, r12 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r4, r11 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r5, r10 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r6, r9 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r7, r8 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r22, 0 \n\t"                  \
    "mul r2, r14 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r3, r13 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r4, r12 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r5, r11 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r6, r10 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r7, r9 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r8, r8 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r2, r15 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r3, r14 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r4, r13 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r5, r12 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r6, r11 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r7, r10 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r8, r9 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r22, 0 \n\t"                  \
    "mul r2, r16 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r3, r15 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r4, r14 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r5, r13 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r6, r12 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r7, r11 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r8, r10 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r9, r9 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r2, r17 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r3, r16 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r4, r15 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r5, r14 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r6, r13 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r7, r12 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r8, r11 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r9, r10 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r22, 0 \n\t"                  \
    "mul r2, r18 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r3, r17 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r4, r16 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r5, r15 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r6, r14 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r7, r13 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r8, r12 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r9, r11 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r10, r10 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r2, r19 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r3, r18 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r4, r17 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r5, r16 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r6, r15 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r7, r14 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r8, r13 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r9, r12 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r10, r11 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r22, 0 \n\t"                  \
    "mul r2, r20 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r3, r19 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r4, r18 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r5, r17 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r6, r16 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r7, r15 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r8, r14 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r9, r13 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r10, r12 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r11, r11 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r2, r21 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r3, r20 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r4, r19 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r5, r18 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r6, r17 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r7, r16 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r8, r15 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r9, r14 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r10, r13 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r11, r12 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ld r2, x+ \n\t"                   \
    "ldi r22, 0 \n\t"                  \
    "mul r3, r21 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r4, r20 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r5, r19 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r6, r18 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r7, r17 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r8, r16 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r9, r15 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r10, r14 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r11, r13 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "ld r0, z \n\t"                    \
    "add r23, r0 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r12, r12 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r3, r2 \n\t"                  \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r4, r21 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r5, r20 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r6, r19 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r7, r18 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r8, r17 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r9, r16 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r10, r15 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r11, r14 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r12, r13 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "ld r0, z \n\t"                    \
    "add r23, r0 \n\t"                 \
    "adc r28, r25 \n\t"                \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ld r3, x+ \n\t"                   \
    "ldi r22, 0 \n\t"                  \
    "mul r4, r2 \n\t"                  \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r5, r21 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r6, r20 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r7, r19 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r8, r18 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r9, r17 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r10, r16 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r11, r15 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r12, r14 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "ld r0, z \n\t"                    \
    "add r23, r0 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r13, r13 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r4, r3 \n\t"                  \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r5, r2 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r6, r21 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r7, r20 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r8, r19 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r9, r18 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r10, r17 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r11, r16 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r12, r15 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r13, r14 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "ld r0, z \n\t"                    \
    "add r23, r0 \n\t"                 \
    "adc r28, r25 \n\t"                \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ld r4, x+ \n\t"                   \
    "ldi r22, 0 \n\t"                  \
    "mul r5, r3 \n\t"                  \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r6, r2 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r7, r21 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r8, r20 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r9, r19 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r10, r18 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r11, r17 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r12, r16 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r13, r15 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "ld r0, z \n\t"                    \
    "add r23, r0 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r14, r14 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r5, r4 \n\t"                  \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r6, r3 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r7, r2 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r8, r21 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r9, r20 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r10, r19 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r11, r18 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r12, r17 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r13, r16 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r14, r15 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "ld r0, z \n\t"                    \
    "add r23, r0 \n\t"                 \
    "adc r28, r25 \n\t"                \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ld r5, x+ \n\t"                   \
    "ldi r22, 0 \n\t"                  \
    "mul r6, r4 \n\t"                  \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r7, r3 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r8, r2 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r9, r21 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r10, r20 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r11, r19 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r12, r18 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r13, r17 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r14, r16 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "ld r0, z \n\t"                    \
    "add r23, r0 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r15, r15 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r6, r5 \n\t"                  \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r7, r4 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r8, r3 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r9, r2 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r10, r21 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r11, r20 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r12, r19 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r13, r18 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r14, r17 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r15, r16 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "ld r0, z \n\t"                    \
    "add r23, r0 \n\t"                 \
    "adc r28, r25 \n\t"                \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r22, 0 \n\t"                  \
    "mul r7, r5 \n\t"                  \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r8, r4 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r9, r3 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r10, r2 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r11, r21 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r12, r20 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r13, r19 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r14, r18 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r15, r17 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r16, r16 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r8, r5 \n\t"                  \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r9, r4 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r10, r3 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r11, r2 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r12, r21 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r13, r20 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r14, r19 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r15, r18 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r16, r17 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r22, 0 \n\t"                  \
    "mul r9, r5 \n\t"                  \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r10, r4 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r11, r3 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r12, r2 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r13, r21 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r14, r20 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r15, r19 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r16, r18 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r17, r17 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r10, r5 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r11, r4 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r12, r3 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r13, r2 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r14, r21 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r15, r20 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r16, r19 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r17, r18 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r22, 0 \n\t"                  \
    "mul r11, r5 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r12, r4 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r13, r3 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r14, r2 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r15, r21 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r16, r20 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r17, r19 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r18, r18 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r12, r5 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r13, r4 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r14, r3 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r15, r2 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r16, r21 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r17, r20 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r18, r19 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r22, 0 \n\t"                  \
    "mul r13, r5 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r14, r4 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r15, r3 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r16, r2 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r17, r21 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r18, r20 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r19, r19 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r14, r5 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r15, r4 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r16, r3 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r17, r2 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r18, r21 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r19, r20 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r22, 0 \n\t"                  \
    "mul r15, r5 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r16, r4 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r17, r3 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r18, r2 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r19, r21 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r20, r20 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r16, r5 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r17, r4 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r18, r3 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r19, r2 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r20, r21 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r22, 0 \n\t"                  \
    "mul r17, r5 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r18, r4 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r19, r3 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r20, r2 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r21, r21 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r18, r5 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r19, r4 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r20, r3 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r21, r2 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r22, 0 \n\t"                  \
    "mul r19, r5 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r20, r4 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r21, r3 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r2, r2 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r20, r5 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r21, r4 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r2, r3 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r22, 0 \n\t"                  \
    "mul r21, r5 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r2, r4 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r3, r3 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r2, r5 \n\t"                  \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r3, r4 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r23, 0 \n\t"                  \
    "mul r3, r5 \n\t"                  \
    "add r28, r0 \n\t"                 \
    "adc r29, r1 \n\t"                 \
    "adc r23, r25 \n\t"                \
    "add r28, r0 \n\t"                 \
    "adc r29, r1 \n\t"                 \
    "adc r23, r25 \n\t"                \
    "mul r4, r4 \n\t"                  \
    "add r28, r0 \n\t"                 \
    "adc r29, r1 \n\t"                 \
    "adc r23, r25 \n\t"                \
    "st z+, r28 \n\t"                  \
                                       \
    "ldi r28, 0 \n\t"                  \
    "mul r4, r5 \n\t"                  \
    "add r29, r0 \n\t"                 \
    "adc r23, r1 \n\t"                 \
    "adc r28, r25 \n\t"                \
    "add r29, r0 \n\t"                 \
    "adc r23, r1 \n\t"                 \
    "adc r28, r25 \n\t"                \
    "st z+, r29 \n\t"                  \
                                       \
    "mul r5, r5 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "st z+, r23 \n\t"                  \
    "st z+, r28 \n\t"

#define FAST_SQUARE_ASM_24_TO_28           \
    "cpi r20, 24 \n\t"                     \
    "brne 1f \n\t"                         \
    "jmp 2f \n\t"                          \
    "1: \n\t"                              \
    "ld r2, x+ \n\t"                       \
    "ld r3, x+ \n\t"                       \
    "ld r4, x+ \n\t"                       \
    "ld r5, x+ \n\t"                       \
    "sbiw r26, 28 \n\t"                    \
    "sbiw r30, 24 \n\t"                    \
    "ld r6, x+ \n\t"                       \
    "ld r7, x+ \n\t"                       \
    "ld r8, x+ \n\t"                       \
    "ld r9, x+ \n\t"                       \
                                           \
    "mul r2, r6 \n\t"                      \
    "mov r10, r0 \n\t"                     \
    "mov r11, r1 \n\t"                     \
    "mov r12, r25 \n\t"                    \
    "mov r13, r25 \n\t"                    \
    "mul r2, r7 \n\t"                      \
    "add r11, r0 \n\t"                     \
    "adc r12, r1 \n\t"                     \
    "adc r13, r25 \n\t"                    \
    "mul r3, r6 \n\t"                      \
    "add r11, r0 \n\t"                     \
    "adc r12, r1 \n\t"                     \
    "adc r13, r25 \n\t"                    \
                                           \
    "mov r14, r25 \n\t"                    \
    "mul r2, r8 \n\t"                      \
    "add r12, r0 \n\t"                     \
    "adc r13, r1 \n\t"                     \
    "adc r14, r25 \n\t"                    \
    "mul r3, r7 \n\t"                      \
    "add r12, r0 \n\t"                     \
    "adc r13, r1 \n\t"                     \
    "adc r14, r25 \n\t"                    \
    "mul r4, r6 \n\t"                      \
    "add r12, r0 \n\t"                     \
    "adc r13, r1 \n\t"                     \
    "adc r14, r25 \n\t"                    \
                                           \
    "mov r15, r25 \n\t"                    \
    "mul r2, r9 \n\t"                      \
    "add r13, r0 \n\t"                     \
    "adc r14, r1 \n\t"                     \
    "adc r15, r25 \n\t"                    \
    "mul r3, r8 \n\t"                      \
    "add r13, r0 \n\t"                     \
    "adc r14, r1 \n\t"                     \
    "adc r15, r25 \n\t"                    \
    "mul r4, r7 \n\t"                      \
    "add r13, r0 \n\t"                     \
    "adc r14, r1 \n\t"                     \
    "adc r15, r25 \n\t"                    \
    "mul r5, r6 \n\t"                      \
    "add r13, r0 \n\t"                     \
    "adc r14, r1 \n\t"                     \
    "adc r15, r25 \n\t"                    \
                                           \
    "ld r6, x+ \n\t"                       \
    "mov r16, r25 \n\t"                    \
    "mul r2, r6 \n\t"                      \
    "add r14, r0 \n\t"                     \
    "adc r15, r1 \n\t"                     \
    "adc r16, r25 \n\t"                    \
    "mul r3, r9 \n\t"                      \
    "add r14, r0 \n\t"                     \
    "adc r15, r1 \n\t"                     \
    "adc r16, r25 \n\t"                    \
    "mul r4, r8 \n\t"                      \
    "add r14, r0 \n\t"                     \
    "adc r15, r1 \n\t"                     \
    "adc r16, r25 \n\t"                    \
    "mul r5, r7 \n\t"                      \
    "add r14, r0 \n\t"                     \
    "adc r15, r1 \n\t"                     \
    "adc r16, r25 \n\t"                    \
                                           \
    "ld r7, x+ \n\t"                       \
    "mov r17, r25 \n\t"                    \
    "mul r2, r7 \n\t"                      \
    "add r15, r0 \n\t"                     \
    "adc r16, r1 \n\t"                     \
    "adc r17, r25 \n\t"                    \
    "mul r3, r6 \n\t"                      \
    "add r15, r0 \n\t"                     \
    "adc r16, r1 \n\t"                     \
    "adc r17, r25 \n\t"                    \
    "mul r4, r9 \n\t"                      \
    "add r15, r0 \n\t"                     \
    "adc r16, r1 \n\t"                     \
    "adc r17, r25 \n\t"                    \
    "mul r5, r8 \n\t"                      \
    "add r15, r0 \n\t"                     \
    "adc r16, r1 \n\t"                     \
    "adc r17, r25 \n\t"                    \
                                           \
    "ld r8, x+ \n\t"                       \
    "mov r18, r25 \n\t"                    \
    "mul r2, r8 \n\t"                      \
    "add r16, r0 \n\t"                     \
    "adc r17, r1 \n\t"                     \
    "adc r18, r25 \n\t"                    \
    "mul r3, r7 \n\t"                      \
    "add r16, r0 \n\t"                     \
    "adc r17, r1 \n\t"                     \
    "adc r18, r25 \n\t"                    \
    "mul r4, r6 \n\t"                      \
    "add r16, r0 \n\t"                     \
    "adc r17, r1 \n\t"                     \
    "adc r18, r25 \n\t"                    \
    "mul r5, r9 \n\t"                      \
    "add r16, r0 \n\t"                     \
    "adc r17, r1 \n\t"                     \
    "adc r18, r25 \n\t"                    \
                                           \
    "ld r9, x+ \n\t"                       \
    "mov r19, r25 \n\t"                    \
    "mul r2, r9 \n\t"                      \
    "add r17, r0 \n\t"                     \
    "adc r18, r1 \n\t"                     \
    "adc r19, r25 \n\t"                    \
    "mul r3, r8 \n\t"                      \
    "add r17, r0 \n\t"                     \
    "adc r18, r1 \n\t"                     \
    "adc r19, r25 \n\t"                    \
    "mul r4, r7 \n\t"                      \
    "add r17, r0 \n\t"                     \
    "adc r18, r1 \n\t"                     \
    "adc r19, r25 \n\t"                    \
    "mul r5, r6 \n\t"                      \
    "add r17, r0 \n\t"                     \
    "adc r18, r1 \n\t"                     \
    "adc r19, r25 \n\t"                    \
                                           \
    "ld r6, x+ \n\t"                       \
    "mov r21, r25 \n\t"                    \
    "mul r2, r6 \n\t"                      \
    "add r18, r0 \n\t"                     \
    "adc r19, r1 \n\t"                     \
    "adc r21, r25 \n\t"                    \
    "mul r3, r9 \n\t"                      \
    "add r18, r0 \n\t"                     \
    "adc r19, r1 \n\t"                     \
    "adc r21, r25 \n\t"                    \
    "mul r4, r8 \n\t"                      \
    "add r18, r0 \n\t"                     \
    "adc r19, r1 \n\t"                     \
    "adc r21, r25 \n\t"                    \
    "mul r5, r7 \n\t"                      \
    "add r18, r0 \n\t"                     \
    "adc r19, r1 \n\t"                     \
    "adc r21, r25 \n\t"                    \
                                           \
    "ld r7, x+ \n\t"                       \
    "mov r22, r25 \n\t"                    \
    "mul r2, r7 \n\t"                      \
    "add r19, r0 \n\t"                     \
    "adc r21, r1 \n\t"                     \
    "adc r22, r25 \n\t"                    \
    "mul r3, r6 \n\t"                      \
    "add r19, r0 \n\t"                     \
    "adc r21, r1 \n\t"                     \
    "adc r22, r25 \n\t"                    \
    "mul r4, r9 \n\t"                      \
    "add r19, r0 \n\t"                     \
    "adc r21, r1 \n\t"                     \
    "adc r22, r25 \n\t"                    \
    "mul r5, r8 \n\t"                      \
    "add r19, r0 \n\t"                     \
    "adc r21, r1 \n\t"                     \
    "adc r22, r25 \n\t"                    \
                                           \
    "ld r8, x+ \n\t"                       \
    "mov r23, r25 \n\t"                    \
    "mul r2, r8 \n\t"                      \
    "add r21, r0 \n\t"                     \
    "adc r22, r1 \n\t"                     \
    "adc r23, r25 \n\t"                    \
    "mul r3, r7 \n\t"                      \
    "add r21, r0 \n\t"                     \
    "adc r22, r1 \n\t"                     \
    "adc r23, r25 \n\t"                    \
    "mul r4, r6 \n\t"                      \
    "add r21, r0 \n\t"                     \
    "adc r22, r1 \n\t"                     \
    "adc r23, r25 \n\t"                    \
    "mul r5, r9 \n\t"                      \
    "add r21, r0 \n\t"                     \
    "adc r22, r1 \n\t"                     \
    "adc r23, r25 \n\t"                    \
                                           \
    "ld r9, x+ \n\t"                       \
    "mov r24, r25 \n\t"                    \
    "mul r2, r9 \n\t"                      \
    "add r22, r0 \n\t"                     \
    "adc r23, r1 \n\t"                     \
    "adc r24, r25 \n\t"                    \
    "mul r3, r8 \n\t"                      \
    "add r22, r0 \n\t"                     \
    "adc r23, r1 \n\t"                     \
    "adc r24, r25 \n\t"                    \
    "mul r4, r7 \n\t"                      \
    "add r22, r0 \n\t"                     \
    "adc r23, r1 \n\t"                     \
    "adc r24, r25 \n\t"                    \
    "mul r5, r6 \n\t"                      \
    "add r22, r0 \n\t"                     \
    "adc r23, r1 \n\t"                     \
    "adc r24, r25 \n\t"                    \
                                           \
    "ld r6, x+ \n\t"                       \
    "mov r28, r25 \n\t"                    \
    "mul r2, r6 \n\t"                      \
    "add r23, r0 \n\t"                     \
    "adc r24, r1 \n\t"                     \
    "adc r28, r25 \n\t"                    \
    "mul r3, r9 \n\t"                      \
    "add r23, r0 \n\t"                     \
    "adc r24, r1 \n\t"                     \
    "adc r28, r25 \n\t"                    \
    "mul r4, r8 \n\t"                      \
    "add r23, r0 \n\t"                     \
    "adc r24, r1 \n\t"                     \
    "adc r28, r25 \n\t"                    \
    "mul r5, r7 \n\t"                      \
    "add r23, r0 \n\t"                     \
    "adc r24, r1 \n\t"                     \
    "adc r28, r25 \n\t"                    \
                                           \
    "ld r7, x+ \n\t"                       \
    "mov r29, r25 \n\t"                    \
    "mul r2, r7 \n\t"                      \
    "add r24, r0 \n\t"                     \
    "adc r28, r1 \n\t"                     \
    "adc r29, r25 \n\t"                    \
    "mul r3, r6 \n\t"                      \
    "add r24, r0 \n\t"                     \
    "adc r28, r1 \n\t"                     \
    "adc r29, r25 \n\t"                    \
    "mul r4, r9 \n\t"                      \
    "add r24, r0 \n\t"                     \
    "adc r28, r1 \n\t"                     \
    "adc r29, r25 \n\t"                    \
    "mul r5, r8 \n\t"                      \
    "add r24, r0 \n\t"                     \
    "adc r28, r1 \n\t"                     \
    "adc r29, r25 \n\t"                    \
                                           \
    "lsl r10 \n\t"                         \
    "rol r11 \n\t"                         \
    "rol r12 \n\t"                         \
    "rol r13 \n\t"                         \
    "rol r14 \n\t"                         \
    "rol r15 \n\t"                         \
    "rol r16 \n\t"                         \
    "rol r17 \n\t"                         \
    "rol r18 \n\t"                         \
    "rol r19 \n\t"                         \
    "rol r21 \n\t"                         \
    "rol r22 \n\t"                         \
    "rol r23 \n\t"                         \
    "rol r24 \n\t"                         \
    "rol r28 \n\t"                         \
    "rol r29 \n\t"                         \
    "ld r0, z \n\t"                        \
    "add r10, r0 \n\t"                     \
    "st z+, r10 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r11, r0 \n\t"                     \
    "st z+, r11 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r12, r0 \n\t"                     \
    "st z+, r12 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r13, r0 \n\t"                     \
    "st z+, r13 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r14, r0 \n\t"                     \
    "st z+, r14 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r15, r0 \n\t"                     \
    "st z+, r15 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r16, r0 \n\t"                     \
    "st z+, r16 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r17, r0 \n\t"                     \
    "st z+, r17 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r18, r0 \n\t"                     \
    "st z+, r18 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r19, r0 \n\t"                     \
    "st z+, r19 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r21, r0 \n\t"                     \
    "st z+, r21 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r22, r0 \n\t"                     \
    "st z+, r22 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r23, r0 \n\t"                     \
    "st z+, r23 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r24, r0 \n\t"                     \
    "st z+, r24 \n\t"                      \
    "adc r28, r25 \n\t"                    \
    "adc r29, r25 \n\t"                    \
    "bst r28, 0 \n\t"                      \
    "lsr r29 \n\t"                         \
    "ror r28 \n\t"                         \
                                           \
    "ld r8, x+ \n\t"                       \
    "mov r10, r25 \n\t"                    \
    "mul r2, r8 \n\t"                      \
    "add r28, r0 \n\t"                     \
    "adc r29, r1 \n\t"                     \
    "adc r10, r25 \n\t"                    \
    "mul r3, r7 \n\t"                      \
    "add r28, r0 \n\t"                     \
    "adc r29, r1 \n\t"                     \
    "adc r10, r25 \n\t"                    \
    "mul r4, r6 \n\t"                      \
    "add r28, r0 \n\t"                     \
    "adc r29, r1 \n\t"                     \
    "adc r10, r25 \n\t"                    \
    "mul r5, r9 \n\t"                      \
    "add r28, r0 \n\t"                     \
    "adc r29, r1 \n\t"                     \
    "adc r10, r25 \n\t"                    \
                                           \
    "ld r9, x+ \n\t"                       \
    "mov r11, r25 \n\t"                    \
    "mul r2, r9 \n\t"                      \
    "add r29, r0 \n\t"                     \
    "adc r10, r1 \n\t"                     \
    "adc r11, r25 \n\t"                    \
    "mul r3, r8 \n\t"                      \
    "add r29, r0 \n\t"                     \
    "adc r10, r1 \n\t"                     \
    "adc r11, r25 \n\t"                    \
    "mul r4, r7 \n\t"                      \
    "add r29, r0 \n\t"                     \
    "adc r10, r1 \n\t"                     \
    "adc r11, r25 \n\t"                    \
    "mul r5, r6 \n\t"                      \
    "add r29, r0 \n\t"                     \
    "adc r10, r1 \n\t"                     \
    "adc r11, r25 \n\t"                    \
                                           \
    "ld r6, x+ \n\t"                       \
    "mov r12, r25 \n\t"                    \
    "mul r2, r6 \n\t"                      \
    "add r10, r0 \n\t"                     \
    "adc r11, r1 \n\t"                     \
    "adc r12, r25 \n\t"                    \
    "mul r3, r9 \n\t"                      \
    "add r10, r0 \n\t"                     \
    "adc r11, r1 \n\t"                     \
    "adc r12, r25 \n\t"                    \
    "mul r4, r8 \n\t"                      \
    "add r10, r0 \n\t"                     \
    "adc r11, r1 \n\t"                     \
    "adc r12, r25 \n\t"                    \
    "mul r5, r7 \n\t"                      \
    "add r10, r0 \n\t"                     \
    "adc r11, r1 \n\t"                     \
    "adc r12, r25 \n\t"                    \
                                           \
    "ld r7, x+ \n\t"                       \
    "mov r13, r25 \n\t"                    \
    "mul r2, r7 \n\t"                      \
    "add r11, r0 \n\t"                     \
    "adc r12, r1 \n\t"                     \
    "adc r13, r25 \n\t"                    \
    "mul r3, r6 \n\t"                      \
    "add r11, r0 \n\t"                     \
    "adc r12, r1 \n\t"                     \
    "adc r13, r25 \n\t"                    \
    "mul r4, r9 \n\t"                      \
    "add r11, r0 \n\t"                     \
    "adc r12, r1 \n\t"                     \
    "adc r13, r25 \n\t"                    \
    "mul r5, r8 \n\t"                      \
    "add r11, r0 \n\t"                     \
    "adc r12, r1 \n\t"                     \
    "adc r13, r25 \n\t"                    \
                                           \
    "ld r8, x+ \n\t"                       \
    "mov r14, r25 \n\t"                    \
    "mul r2, r8 \n\t"                      \
    "add r12, r0 \n\t"                     \
    "adc r13, r1 \n\t"                     \
    "adc r14, r25 \n\t"                    \
    "mul r3, r7 \n\t"                      \
    "add r12, r0 \n\t"                     \
    "adc r13, r1 \n\t"                     \
    "adc r14, r25 \n\t"                    \
    "mul r4, r6 \n\t"                      \
    "add r12, r0 \n\t"                     \
    "adc r13, r1 \n\t"                     \
    "adc r14, r25 \n\t"                    \
    "mul r5, r9 \n\t"                      \
    "add r12, r0 \n\t"                     \
    "adc r13, r1 \n\t"                     \
    "adc r14, r25 \n\t"                    \
                                           \
    "ld r9, x+ \n\t"                       \
    "mov r15, r25 \n\t"                    \
    "mul r2, r9 \n\t"                      \
    "add r13, r0 \n\t"                     \
    "adc r14, r1 \n\t"                     \
    "adc r15, r25 \n\t"                    \
    "mul r3, r8 \n\t"                      \
    "add r13, r0 \n\t"                     \
    "adc r14, r1 \n\t"                     \
    "adc r15, r25 \n\t"                    \
    "mul r4, r7 \n\t"                      \
    "add r13, r0 \n\t"                     \
    "adc r14, r1 \n\t"                     \
    "adc r15, r25 \n\t"                    \
    "mul r5, r6 \n\t"                      \
    "add r13, r0 \n\t"                     \
    "adc r14, r1 \n\t"                     \
    "adc r15, r25 \n\t"                    \
                                           \
    "ld r6, x+ \n\t"                       \
    "mov r16, r25 \n\t"                    \
    "mul r2, r6 \n\t"                      \
    "add r14, r0 \n\t"                     \
    "adc r15, r1 \n\t"                     \
    "adc r16, r25 \n\t"                    \
    "mul r3, r9 \n\t"                      \
    "add r14, r0 \n\t"                     \
    "adc r15, r1 \n\t"                     \
    "adc r16, r25 \n\t"                    \
    "mul r4, r8 \n\t"                      \
    "add r14, r0 \n\t"                     \
    "adc r15, r1 \n\t"                     \
    "adc r16, r25 \n\t"                    \
    "mul r5, r7 \n\t"                      \
    "add r14, r0 \n\t"                     \
    "adc r15, r1 \n\t"                     \
    "adc r16, r25 \n\t"                    \
                                           \
    "ld r7, x+ \n\t"                       \
    "mov r17, r25 \n\t"                    \
    "mul r2, r7 \n\t"                      \
    "add r15, r0 \n\t"                     \
    "adc r16, r1 \n\t"                     \
    "adc r17, r25 \n\t"                    \
    "mul r3, r6 \n\t"                      \
    "add r15, r0 \n\t"                     \
    "adc r16, r1 \n\t"                     \
    "adc r17, r25 \n\t"                    \
    "mul r4, r9 \n\t"                      \
    "add r15, r0 \n\t"                     \
    "adc r16, r1 \n\t"                     \
    "adc r17, r25 \n\t"                    \
    "mul r5, r8 \n\t"                      \
    "add r15, r0 \n\t"                     \
    "adc r16, r1 \n\t"                     \
    "adc r17, r25 \n\t"                    \
                                           \
    "ld r8, x+ \n\t"                       \
    "mov r18, r25 \n\t"                    \
    "mul r2, r8 \n\t"                      \
    "add r16, r0 \n\t"                     \
    "adc r17, r1 \n\t"                     \
    "adc r18, r25 \n\t"                    \
    "mul r3, r7 \n\t"                      \
    "add r16, r0 \n\t"                     \
    "adc r17, r1 \n\t"                     \
    "adc r18, r25 \n\t"                    \
    "mul r4, r6 \n\t"                      \
    "add r16, r0 \n\t"                     \
    "adc r17, r1 \n\t"                     \
    "adc r18, r25 \n\t"                    \
    "mul r5, r9 \n\t"                      \
    "add r16, r0 \n\t"                     \
    "adc r17, r1 \n\t"                     \
    "adc r18, r25 \n\t"                    \
                                           \
    "ld r9, x+ \n\t"                       \
    "mov r19, r25 \n\t"                    \
    "mul r2, r9 \n\t"                      \
    "add r17, r0 \n\t"                     \
    "adc r18, r1 \n\t"                     \
    "adc r19, r25 \n\t"                    \
    "mul r3, r8 \n\t"                      \
    "add r17, r0 \n\t"                     \
    "adc r18, r1 \n\t"                     \
    "adc r19, r25 \n\t"                    \
    "mul r4, r7 \n\t"                      \
    "add r17, r0 \n\t"                     \
    "adc r18, r1 \n\t"                     \
    "adc r19, r25 \n\t"                    \
    "mul r5, r6 \n\t"                      \
    "add r17, r0 \n\t"                     \
    "adc r18, r1 \n\t"                     \
    "adc r19, r25 \n\t"                    \
                                           \
    "lsl r28 \n\t"                         \
    "bld r28, 0 \n\t"                      \
    "rol r29 \n\t"                         \
    "rol r10 \n\t"                         \
    "rol r11 \n\t"                         \
    "rol r12 \n\t"                         \
    "rol r13 \n\t"                         \
    "rol r14 \n\t"                         \
    "rol r15 \n\t"                         \
    "rol r16 \n\t"                         \
    "rol r17 \n\t"                         \
    "rol r18 \n\t"                         \
    "rol r19 \n\t"                         \
    "ld r0, z \n\t"                        \
    "add r28, r0 \n\t"                     \
    "st z+, r28 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r29, r0 \n\t"                     \
    "st z+, r29 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r10, r0 \n\t"                     \
    "st z+, r10 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r11, r0 \n\t"                     \
    "st z+, r11 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r12, r0 \n\t"                     \
    "st z+, r12 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r13, r0 \n\t"                     \
    "st z+, r13 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r14, r0 \n\t"                     \
    "st z+, r14 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r15, r0 \n\t"                     \
    "st z+, r15 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r16, r0 \n\t"                     \
    "st z+, r16 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r17, r0 \n\t"                     \
    "st z+, r17 \n\t"                      \
    "adc r18, r25 \n\t"                    \
    "adc r19, r25 \n\t"                    \
                                           \
    "mul r2, r2 \n\t"                      \
    "mov r21, r0 \n\t"                     \
    "mov r22, r1 \n\t"                     \
    "mul r3, r3 \n\t"                      \
    "mov r23, r0 \n\t"                     \
    "mov r24, r1 \n\t"                     \
    "mul r4, r4 \n\t"                      \
    "mov r28, r0 \n\t"                     \
    "mov r29, r1 \n\t"                     \
    "mul r5, r5 \n\t"                      \
    "mov r10, r0 \n\t"                     \
    "mov r11, r1 \n\t"                     \
    "add r21, r18 \n\t"                    \
    "adc r22, r19 \n\t"                    \
    "adc r23, r25 \n\t"                    \
    "adc r24, r25 \n\t"                    \
                                           \
    "mul r7, r5 \n\t"                      \
    "mov r18, r0 \n\t"                     \
    "mov r19, r1 \n\t"                     \
    "mov r12, r25 \n\t"                    \
    "mul r8, r4 \n\t"                      \
    "add r18, r0 \n\t"                     \
    "adc r19, r1 \n\t"                     \
    "adc r12, r25 \n\t"                    \
    "mul r9, r3 \n\t"                      \
    "add r18, r0 \n\t"                     \
    "adc r19, r1 \n\t"                     \
    "adc r12, r25 \n\t"                    \
    "mov r13, r25 \n\t"                    \
    "mul r8, r5 \n\t"                      \
    "add r19, r0 \n\t"                     \
    "adc r12, r1 \n\t"                     \
    "adc r13, r25 \n\t"                    \
    "mul r9, r4 \n\t"                      \
    "add r19, r0 \n\t"                     \
    "adc r12, r1 \n\t"                     \
    "adc r13, r25 \n\t"                    \
    "mul r2, r3 \n\t"                      \
    "add r19, r0 \n\t"                     \
    "adc r12, r1 \n\t"                     \
    "adc r13, r25 \n\t"                    \
    "mov r14, r25 \n\t"                    \
    "mul r9, r5 \n\t"                      \
    "add r12, r0 \n\t"                     \
    "adc r13, r1 \n\t"                     \
    "adc r14, r25 \n\t"                    \
    "mul r2, r4 \n\t"                      \
    "add r12, r0 \n\t"                     \
    "adc r13, r1 \n\t"                     \
    "adc r14, r25 \n\t"                    \
    "mov r15, r25 \n\t"                    \
    "mul r2, r5 \n\t"                      \
    "add r13, r0 \n\t"                     \
    "adc r14, r1 \n\t"                     \
    "adc r15, r25 \n\t"                    \
    "mul r3, r4 \n\t"                      \
    "add r13, r0 \n\t"                     \
    "adc r14, r1 \n\t"                     \
    "adc r15, r25 \n\t"                    \
    "mov r16, r25 \n\t"                    \
    "mul r3, r5 \n\t"                      \
    "add r14, r0 \n\t"                     \
    "adc r15, r1 \n\t"                     \
    "adc r16, r25 \n\t"                    \
    "mul r4, r5 \n\t"                      \
    "add r15, r0 \n\t"                     \
    "adc r16, r1 \n\t"                     \
                                           \
    "lsl r18 \n\t"                         \
    "rol r19 \n\t"                         \
    "rol r12 \n\t"                         \
    "rol r13 \n\t"                         \
    "rol r14 \n\t"                         \
    "rol r15 \n\t"                         \
    "rol r16 \n\t"                         \
    "adc r11, r25 \n\t"                    \
    "add r21, r18 \n\t"                    \
    "adc r22, r19 \n\t"                    \
    "adc r23, r12 \n\t"                    \
    "adc r24, r13 \n\t"                    \
    "adc r28, r14 \n\t"                    \
    "adc r29, r15 \n\t"                    \
    "adc r10, r16 \n\t"                    \
    "adc r11, r25 \n\t"                    \
                                           \
    "st z+, r21 \n\t"                      \
    "st z+, r22 \n\t"                      \
    "st z+, r23 \n\t"                      \
    "st z+, r24 \n\t"                      \
    "st z+, r28 \n\t"                      \
    "st z+, r29 \n\t"                      \
    "st z+, r10 \n\t"                      \
    "st z+, r11 \n\t"                      \
    "adiw r26, 4 \n\t"

#define FAST_SQUARE_ASM_28         \
    "ldi r25, 0 \n\t"              \
    "movw r28, r26 \n\t"           \
    "ld r2, x+ \n\t"               \
    "ld r3, x+ \n\t"               \
    "ld r4, x+ \n\t"               \
    "ld r5, x+ \n\t"               \
    "adiw r28, 20 \n\t"            \
    "ld r12, y+ \n\t"              \
    "ld r13, y+ \n\t"              \
    "ld r14, y+ \n\t"              \
    "ld r15, y+ \n\t"              \
    "adiw r30, 20 \n\t"            \
                                   \
    "ldi r23, 0 \n\t"              \
    "mul 2, 12 \n\t"               \
    "st z+, r0 \n\t"               \
    "mov r22, r1 \n\t"             \
                                   \
    "ldi r24, 0 \n\t"              \
    "mul r2, r13 \n\t"             \
    "add r22, r0 \n\t"             \
    "adc r23, r1 \n\t"             \
    "adc r24, r25 \n\t"            \
    "st z+, r22 \n\t"              \
                                   \
    "ldi r22, 0 \n\t"              \
    "mul r2, r14 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r3, r13 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r23, 0 \n\t"              \
    "mul r2, r15 \n\t"             \
    "add r24, r0 \n\t"             \
    "adc r22, r1 \n\t"             \
    "adc r23, r25 \n\t"            \
    "mul r3, r14 \n\t"             \
    "add r24, r0 \n\t"             \
    "adc r22, r1 \n\t"             \
    "adc r23, r25 \n\t"            \
    "st z+, r24 \n\t"              \
                                   \
    "ld r12, y+ \n\t"              \
    "ldi r24, 0 \n\t"              \
    "mul r2, r12 \n\t"             \
    "add r22, r0 \n\t"             \
    "adc r23, r1 \n\t"             \
    "adc r24, r25 \n\t"            \
    "mul r3, r15 \n\t"             \
    "add r22, r0 \n\t"             \
    "adc r23, r1 \n\t"             \
    "adc r24, r25 \n\t"            \
    "mul r4, r14 \n\t"             \
    "add r22, r0 \n\t"             \
    "adc r23, r1 \n\t"             \
    "adc r24, r25 \n\t"            \
    "st z+, r22 \n\t"              \
                                   \
    "ld r13, y+ \n\t"              \
    "ldi r22, 0 \n\t"              \
    "mul r2, r13 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r3, r12 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r4, r15 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ld r14, y+ \n\t"              \
    "ldi r23, 0 \n\t"              \
    "mul r2, r14 \n\t"             \
    "add r24, r0 \n\t"             \
    "adc r22, r1 \n\t"             \
    "adc r23, r25 \n\t"            \
    "mul r3, r13 \n\t"             \
    "add r24, r0 \n\t"             \
    "adc r22, r1 \n\t"             \
    "adc r23, r25 \n\t"            \
    "mul r4, r12 \n\t"             \
    "add r24, r0 \n\t"             \
    "adc r22, r1 \n\t"             \
    "adc r23, r25 \n\t"            \
    "mul r5, r15 \n\t"             \
    "add r24, r0 \n\t"             \
    "adc r22, r1 \n\t"             \
    "adc r23, r25 \n\t"            \
    "st z+, r24 \n\t"              \
                                   \
    "ld r15, y+ \n\t"              \
    "ldi r24, 0 \n\t"              \
    "mul r2, r15 \n\t"             \
    "add r22, r0 \n\t"             \
    "adc r23, r1 \n\t"             \
    "adc r24, r25 \n\t"            \
    "mul r3, r14 \n\t"             \
    "add r22, r0 \n\t"             \
    "adc r23, r1 \n\t"             \
    "adc r24, r25 \n\t"            \
    "mul r4, r13 \n\t"             \
    "add r22, r0 \n\t"             \
    "adc r23, r1 \n\t"             \
    "adc r24, r25 \n\t"            \
    "mul r5, r12 \n\t"             \
    "add r22, r0 \n\t"             \
    "adc r23, r1 \n\t"             \
    "adc r24, r25 \n\t"            \
    "st z+, r22 \n\t"              \
                                   \
    "ld r2, x+ \n\t"               \
    "ldi r22, 0 \n\t"              \
    "mul r3, r15 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r4, r14 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r5, r13 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r2, r12 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ld r3, x+ \n\t"               \
    "ldi r23, 0 \n\t"              \
    "mul r4, r15 \n\t"             \
    "add r24, r0 \n\t"             \
    "adc r22, r1 \n\t"             \
    "adc r23, r25 \n\t"            \
    "mul r5, r14 \n\t"             \
    "add r24, r0 \n\t"             \
    "adc r22, r1 \n\t"             \
    "adc r23, r25 \n\t"            \
    "mul r2, r13 \n\t"             \
    "add r24, r0 \n\t"             \
    "adc r22, r1 \n\t"             \
    "adc r23, r25 \n\t"            \
    "st z+, r24 \n\t"              \
                                   \
    "ld r4, x+ \n\t"               \
    "ldi r24, 0 \n\t"              \
    "mul r5, r15 \n\t"             \
    "add r22, r0 \n\t"             \
    "adc r23, r1 \n\t"             \
    "adc r24, r25 \n\t"            \
    "mul r2, r14 \n\t"             \
    "add r22, r0 \n\t"             \
    "adc r23, r1 \n\t"             \
    "adc r24, r25 \n\t"            \
    "mul r3, r13 \n\t"             \
    "add r22, r0 \n\t"             \
    "adc r23, r1 \n\t"             \
    "adc r24, r25 \n\t"            \
    "st z+, r22 \n\t"              \
                                   \
    "ld r5, x+ \n\t"               \
    "ldi r22, 0 \n\t"              \
    "mul r2, r15 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r3, r14 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r23, 0 \n\t"              \
    "mul r3, r15 \n\t"             \
    "add r24, r0 \n\t"             \
    "adc r22, r1 \n\t"             \
    "adc r23, r25 \n\t"            \
    "mul r4, r14 \n\t"             \
    "add r24, r0 \n\t"             \
    "adc r22, r1 \n\t"             \
    "adc r23, r25 \n\t"            \
    "st z+, r24 \n\t"              \
                                   \
    "ldi r24, 0 \n\t"              \
    "mul r4, r15 \n\t"             \
    "add r22, r0 \n\t"             \
    "adc r23, r1 \n\t"             \
    "adc r24, r25 \n\t"            \
    "st z+, r22 \n\t"              \
                                   \
    "mul r5, r15 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "st z+, r23 \n\t"              \
    "st z+, r24 \n\t"              \
                                   \
    "sbiw r26, 8 \n\t"             \
    "sbiw r30, 36 \n\t"            \
    "ld r2, x+ \n\t"               \
    "ld r3, x+ \n\t"               \
    "ld r4, x+ \n\t"               \
    "ld r5, x+ \n\t"               \
    "ld r6, x+ \n\t"               \
    "ld r7, x+ \n\t"               \
    "ld r8, x+ \n\t"               \
    "ld r9, x+ \n\t"               \
    "ld r10, x+ \n\t"              \
    "ld r11, x+ \n\t"              \
    "ld r12, x+ \n\t"              \
    "ld r13, x+ \n\t"              \
    "ld r14, x+ \n\t"              \
    "ld r15, x+ \n\t"              \
    "ld r16, x+ \n\t"              \
    "ld r17, x+ \n\t"              \
    "ld r18, x+ \n\t"              \
    "ld r19, x+ \n\t"              \
    "ld r20, x+ \n\t"              \
    "ld r21, x+ \n\t"              \
                                   \
    "ldi r23, 0 \n\t"              \
    "mul r2, r2 \n\t"              \
    "st z+, r0 \n\t"               \
    "mov r22, r1 \n\t"             \
                                   \
    "ldi r24, 0 \n\t"              \
    "mul r2, r3 \n\t"              \
    "add r22, r0 \n\t"             \
    "adc r23, r1 \n\t"             \
    "adc r24, r25 \n\t"            \
    "add r22, r0 \n\t"             \
    "adc r23, r1 \n\t"             \
    "adc r24, r25 \n\t"            \
    "st z+, r22 \n\t"              \
                                   \
    "ldi r22, 0 \n\t"              \
    "mul r2, r4 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r3, r3 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r29, 0 \n\t"              \
    "mul r2, r5 \n\t"              \
    "mov r23, r0 \n\t"             \
    "mov r28, r1 \n\t"             \
    "mul r3, r4 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r28 \n\t"                 \
    "rol r29 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r28, r22 \n\t"            \
    "adc r29, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r22, 0 \n\t"              \
    "mul r2, r6 \n\t"              \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r3, r5 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r4, r4 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r28 \n\t"            \
    "adc r24, r29 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r29, 0 \n\t"              \
    "mul r2, r7 \n\t"              \
    "mov r23, r0 \n\t"             \
    "mov r28, r1 \n\t"             \
    "mul r3, r6 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r4, r5 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r28 \n\t"                 \
    "rol r29 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r28, r22 \n\t"            \
    "adc r29, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r22, 0 \n\t"              \
    "mul r2, r8 \n\t"              \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r3, r7 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r4, r6 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r5, r5 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r28 \n\t"            \
    "adc r24, r29 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r29, 0 \n\t"              \
    "mul r2, r9 \n\t"              \
    "mov r23, r0 \n\t"             \
    "mov r28, r1 \n\t"             \
    "mul r3, r8 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r4, r7 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r5, r6 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r28 \n\t"                 \
    "rol r29 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r28, r22 \n\t"            \
    "adc r29, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r22, 0 \n\t"              \
    "mul r2, r10 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r3, r9 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r4, r8 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r5, r7 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r6, r6 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r28 \n\t"            \
    "adc r24, r29 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r29, 0 \n\t"              \
    "mul r2, r11 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r28, r1 \n\t"             \
    "mul r3, r10 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r4, r9 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r5, r8 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r6, r7 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r28 \n\t"                 \
    "rol r29 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r28, r22 \n\t"            \
    "adc r29, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r22, 0 \n\t"              \
    "mul r2, r12 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r3, r11 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r4, r10 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r5, r9 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r6, r8 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r7, r7 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r28 \n\t"            \
    "adc r24, r29 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r29, 0 \n\t"              \
    "mul r2, r13 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r28, r1 \n\t"             \
    "mul r3, r12 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r4, r11 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r5, r10 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r6, r9 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r7, r8 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r28 \n\t"                 \
    "rol r29 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r28, r22 \n\t"            \
    "adc r29, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r22, 0 \n\t"              \
    "mul r2, r14 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r3, r13 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r4, r12 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r5, r11 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r6, r10 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r7, r9 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r8, r8 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r28 \n\t"            \
    "adc r24, r29 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r29, 0 \n\t"              \
    "mul r2, r15 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r28, r1 \n\t"             \
    "mul r3, r14 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r4, r13 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r5, r12 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r6, r11 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r7, r10 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r8, r9 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r28 \n\t"                 \
    "rol r29 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r28, r22 \n\t"            \
    "adc r29, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r22, 0 \n\t"              \
    "mul r2, r16 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r3, r15 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r4, r14 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r5, r13 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r6, r12 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r7, r11 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r8, r10 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r9, r9 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r28 \n\t"            \
    "adc r24, r29 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r29, 0 \n\t"              \
    "mul r2, r17 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r28, r1 \n\t"             \
    "mul r3, r16 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r4, r15 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r5, r14 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r6, r13 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r7, r12 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r8, r11 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r9, r10 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r28 \n\t"                 \
    "rol r29 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r28, r22 \n\t"            \
    "adc r29, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r22, 0 \n\t"              \
    "mul r2, r18 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r3, r17 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r4, r16 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r5, r15 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r6, r14 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r7, r13 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r8, r12 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r9, r11 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r10, r10 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r28 \n\t"            \
    "adc r24, r29 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r29, 0 \n\t"              \
    "mul r2, r19 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r28, r1 \n\t"             \
    "mul r3, r18 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r4, r17 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r5, r16 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r6, r15 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r7, r14 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r8, r13 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r9, r12 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r10, r11 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r28 \n\t"                 \
    "rol r29 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r28, r22 \n\t"            \
    "adc r29, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r22, 0 \n\t"              \
    "mul r2, r20 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r3, r19 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r4, r18 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r5, r17 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r6, r16 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r7, r15 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r8, r14 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r9, r13 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r10, r12 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r11, r11 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r28 \n\t"            \
    "adc r24, r29 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r29, 0 \n\t"              \
    "mul r2, r21 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r28, r1 \n\t"             \
    "mul r3, r20 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r4, r19 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r5, r18 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r6, r17 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r7, r16 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r8, r15 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r9, r14 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r10, r13 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r11, r12 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r28 \n\t"                 \
    "rol r29 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r28, r22 \n\t"            \
    "adc r29, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ld r2, x+ \n\t"               \
    "ldi r22, 0 \n\t"              \
    "mul r3, r21 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r4, r20 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r5, r19 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r6, r18 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r7, r17 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r8, r16 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r9, r15 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r10, r14 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r11, r13 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "ld r0, z \n\t"                \
    "add r23, r0 \n\t"             \
    "adc r24, r25 \n\t"            \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r12, r12 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r28 \n\t"            \
    "adc r24, r29 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r29, 0 \n\t"              \
    "mul r3, r2 \n\t"              \
    "mov r23, r0 \n\t"             \
    "mov r28, r1 \n\t"             \
    "mul r4, r21 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r5, r20 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r6, r19 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r7, r18 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r8, r17 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r9, r16 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r10, r15 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r11, r14 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r12, r13 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "ld r0, z \n\t"                \
    "add r23, r0 \n\t"             \
    "adc r28, r25 \n\t"            \
    "adc r29, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r28 \n\t"                 \
    "rol r29 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r28, r22 \n\t"            \
    "adc r29, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ld r3, x+ \n\t"               \
    "ldi r22, 0 \n\t"              \
    "mul r4, r2 \n\t"              \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r5, r21 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r6, r20 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r7, r19 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r8, r18 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r9, r17 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r10, r16 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r11, r15 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r12, r14 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "ld r0, z \n\t"                \
    "add r23, r0 \n\t"             \
    "adc r24, r25 \n\t"            \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r13, r13 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r28 \n\t"            \
    "adc r24, r29 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r29, 0 \n\t"              \
    "mul r4, r3 \n\t"              \
    "mov r23, r0 \n\t"             \
    "mov r28, r1 \n\t"             \
    "mul r5, r2 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r6, r21 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r7, r20 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r8, r19 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r9, r18 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r10, r17 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r11, r16 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r12, r15 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r13, r14 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "ld r0, z \n\t"                \
    "add r23, r0 \n\t"             \
    "adc r28, r25 \n\t"            \
    "adc r29, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r28 \n\t"                 \
    "rol r29 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r28, r22 \n\t"            \
    "adc r29, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ld r4, x+ \n\t"               \
    "ldi r22, 0 \n\t"              \
    "mul r5, r3 \n\t"              \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r6, r2 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r7, r21 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r8, r20 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r9, r19 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r10, r18 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r11, r17 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r12, r16 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r13, r15 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "ld r0, z \n\t"                \
    "add r23, r0 \n\t"             \
    "adc r24, r25 \n\t"            \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r14, r14 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r28 \n\t"            \
    "adc r24, r29 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r29, 0 \n\t"              \
    "mul r5, r4 \n\t"              \
    "mov r23, r0 \n\t"             \
    "mov r28, r1 \n\t"             \
    "mul r6, r3 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r7, r2 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r8, r21 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r9, r20 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r10, r19 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r11, r18 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r12, r17 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r13, r16 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r14, r15 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "ld r0, z \n\t"                \
    "add r23, r0 \n\t"             \
    "adc r28, r25 \n\t"            \
    "adc r29, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r28 \n\t"                 \
    "rol r29 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r28, r22 \n\t"            \
    "adc r29, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ld r5, x+ \n\t"               \
    "ldi r22, 0 \n\t"              \
    "mul r6, r4 \n\t"              \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r7, r3 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r8, r2 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r9, r21 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r10, r20 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r11, r19 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r12, r18 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r13, r17 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r14, r16 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "ld r0, z \n\t"                \
    "add r23, r0 \n\t"             \
    "adc r24, r25 \n\t"            \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r15, r15 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r28 \n\t"            \
    "adc r24, r29 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r29, 0 \n\t"              \
    "mul r6, r5 \n\t"              \
    "mov r23, r0 \n\t"             \
    "mov r28, r1 \n\t"             \
    "mul r7, r4 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r8, r3 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r9, r2 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r10, r21 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r11, r20 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r12, r19 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r13, r18 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r14, r17 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r15, r16 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "ld r0, z \n\t"                \
    "add r23, r0 \n\t"             \
    "adc r28, r25 \n\t"            \
    "adc r29, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r28 \n\t"                 \
    "rol r29 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r28, r22 \n\t"            \
    "adc r29, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ld r6, x+ \n\t"               \
    "ldi r22, 0 \n\t"              \
    "mul r7, r5 \n\t"              \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r8, r4 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r9, r3 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r10, r2 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r11, r21 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r12, r20 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r13, r19 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r14, r18 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r15, r17 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "ld r0, z \n\t"                \
    "add r23, r0 \n\t"             \
    "adc r24, r25 \n\t"            \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r16, r16 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r28 \n\t"            \
    "adc r24, r29 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r29, 0 \n\t"              \
    "mul r7, r6 \n\t"              \
    "mov r23, r0 \n\t"             \
    "mov r28, r1 \n\t"             \
    "mul r8, r5 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r9, r4 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r10, r3 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r11, r2 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r12, r21 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r13, r20 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r14, r19 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r15, r18 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r16, r17 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "ld r0, z \n\t"                \
    "add r23, r0 \n\t"             \
    "adc r28, r25 \n\t"            \
    "adc r29, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r28 \n\t"                 \
    "rol r29 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r28, r22 \n\t"            \
    "adc r29, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ld r7, x+ \n\t"               \
    "ldi r22, 0 \n\t"              \
    "mul r8, r6 \n\t"              \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r9, r5 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r10, r4 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r11, r3 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r12, r2 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r13, r21 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r14, r20 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r15, r19 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r16, r18 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "ld r0, z \n\t"                \
    "add r23, r0 \n\t"             \
    "adc r24, r25 \n\t"            \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r17, r17 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r28 \n\t"            \
    "adc r24, r29 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r29, 0 \n\t"              \
    "mul r8, r7 \n\t"              \
    "mov r23, r0 \n\t"             \
    "mov r28, r1 \n\t"             \
    "mul r9, r6 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r10, r5 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r11, r4 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r12, r3 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r13, r2 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r14, r21 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r15, r20 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r16, r19 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r17, r18 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "ld r0, z \n\t"                \
    "add r23, r0 \n\t"             \
    "adc r28, r25 \n\t"            \
    "adc r29, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r28 \n\t"                 \
    "rol r29 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r28, r22 \n\t"            \
    "adc r29, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ld r8, x+ \n\t"               \
    "ldi r22, 0 \n\t"              \
    "mul r9, r7 \n\t"              \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r10, r6 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r11, r5 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r12, r4 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r13, r3 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r14, r2 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r15, r21 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r16, r20 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r17, r19 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "ld r0, z \n\t"                \
    "add r23, r0 \n\t"             \
    "adc r24, r25 \n\t"            \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r18, r18 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r28 \n\t"            \
    "adc r24, r29 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r29, 0 \n\t"              \
    "mul r9, r8 \n\t"              \
    "mov r23, r0 \n\t"             \
    "mov r28, r1 \n\t"             \
    "mul r10, r7 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r11, r6 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r12, r5 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r13, r4 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r14, r3 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r15, r2 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r16, r21 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r17, r20 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r18, r19 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "ld r0, z \n\t"                \
    "add r23, r0 \n\t"             \
    "adc r28, r25 \n\t"            \
    "adc r29, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r28 \n\t"                 \
    "rol r29 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r28, r22 \n\t"            \
    "adc r29, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ld r9, x+ \n\t"               \
    "ldi r22, 0 \n\t"              \
    "mul r10, r8 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r11, r7 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r12, r6 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r13, r5 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r14, r4 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r15, r3 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r16, r2 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r17, r21 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r18, r20 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "ld r0, z \n\t"                \
    "add r23, r0 \n\t"             \
    "adc r24, r25 \n\t"            \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r19, r19 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r28 \n\t"            \
    "adc r24, r29 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r29, 0 \n\t"              \
    "mul r10, r9 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r28, r1 \n\t"             \
    "mul r11, r8 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r12, r7 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r13, r6 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r14, r5 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r15, r4 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r16, r3 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r17, r2 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r18, r21 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r19, r20 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "ld r0, z \n\t"                \
    "add r23, r0 \n\t"             \
    "adc r28, r25 \n\t"            \
    "adc r29, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r28 \n\t"                 \
    "rol r29 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r28, r22 \n\t"            \
    "adc r29, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r22, 0 \n\t"              \
    "mul r11, r9 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r12, r8 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r13, r7 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r14, r6 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r15, r5 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r16, r4 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r17, r3 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r18, r2 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r19, r21 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r20, r20 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r28 \n\t"            \
    "adc r24, r29 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r29, 0 \n\t"              \
    "mul r12, r9 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r28, r1 \n\t"             \
    "mul r13, r8 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r14, r7 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r15, r6 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r16, r5 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r17, r4 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r18, r3 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r19, r2 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r20, r21 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r28 \n\t"                 \
    "rol r29 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r28, r22 \n\t"            \
    "adc r29, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r22, 0 \n\t"              \
    "mul r13, r9 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r14, r8 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r15, r7 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r16, r6 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r17, r5 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r18, r4 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r19, r3 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r20, r2 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r21, r21 \n\t"            \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r28 \n\t"            \
    "adc r24, r29 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r29, 0 \n\t"              \
    "mul r14, r9 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r28, r1 \n\t"             \
    "mul r15, r8 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r16, r7 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r17, r6 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r18, r5 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r19, r4 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r20, r3 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r21, r2 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r28 \n\t"                 \
    "rol r29 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r28, r22 \n\t"            \
    "adc r29, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r22, 0 \n\t"              \
    "mul r15, r9 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r16, r8 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r17, r7 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r18, r6 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r19, r5 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r20, r4 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r21, r3 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r2, r2 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r28 \n\t"            \
    "adc r24, r29 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r29, 0 \n\t"              \
    "mul r16, r9 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r28, r1 \n\t"             \
    "mul r17, r8 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r18, r7 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r19, r6 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r20, r5 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r21, r4 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r2, r3 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r28 \n\t"                 \
    "rol r29 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r28, r22 \n\t"            \
    "adc r29, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r22, 0 \n\t"              \
    "mul r17, r9 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r18, r8 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r19, r7 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r20, r6 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r21, r5 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r2, r4 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r3, r3 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r28 \n\t"            \
    "adc r24, r29 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r29, 0 \n\t"              \
    "mul r18, r9 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r28, r1 \n\t"             \
    "mul r19, r8 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r20, r7 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r21, r6 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r2, r5 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r3, r4 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r28 \n\t"                 \
    "rol r29 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r28, r22 \n\t"            \
    "adc r29, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r22, 0 \n\t"              \
    "mul r19, r9 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r20, r8 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r21, r7 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r2, r6 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r3, r5 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r4, r4 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r28 \n\t"            \
    "adc r24, r29 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r29, 0 \n\t"              \
    "mul r20, r9 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r28, r1 \n\t"             \
    "mul r21, r8 \n\t"             \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r2, r7 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r3, r6 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r4, r5 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r28 \n\t"                 \
    "rol r29 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r28, r22 \n\t"            \
    "adc r29, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r22, 0 \n\t"              \
    "mul r21, r9 \n\t"             \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r2, r8 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r3, r7 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r4, r6 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r5, r5 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r28 \n\t"            \
    "adc r24, r29 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r29, 0 \n\t"              \
    "mul r2, r9 \n\t"              \
    "mov r23, r0 \n\t"             \
    "mov r28, r1 \n\t"             \
    "mul r3, r8 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r4, r7 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r5, r6 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r28 \n\t"                 \
    "rol r29 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r28, r22 \n\t"            \
    "adc r29, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r22, 0 \n\t"              \
    "mul r3, r9 \n\t"              \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r4, r8 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "mul r5, r7 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r6, r6 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r28 \n\t"            \
    "adc r24, r29 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r29, 0 \n\t"              \
    "mul r4, r9 \n\t"              \
    "mov r23, r0 \n\t"             \
    "mov r28, r1 \n\t"             \
    "mul r5, r8 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "mul r6, r7 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r28 \n\t"                 \
    "rol r29 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r28, r22 \n\t"            \
    "adc r29, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r22, 0 \n\t"              \
    "mul r5, r9 \n\t"              \
    "mov r23, r0 \n\t"             \
    "mov r24, r1 \n\t"             \
    "mul r6, r8 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r24 \n\t"                 \
    "rol r22 \n\t"                 \
    "mul r7, r7 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r24, r1 \n\t"             \
    "adc r22, r25 \n\t"            \
    "add r23, r28 \n\t"            \
    "adc r24, r29 \n\t"            \
    "adc r22, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r29, 0 \n\t"              \
    "mul r6, r9 \n\t"              \
    "mov r23, r0 \n\t"             \
    "mov r28, r1 \n\t"             \
    "mul r7, r8 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "adc r29, r25 \n\t"            \
    "lsl r23 \n\t"                 \
    "rol r28 \n\t"                 \
    "rol r29 \n\t"                 \
    "add r23, r24 \n\t"            \
    "adc r28, r22 \n\t"            \
    "adc r29, r25 \n\t"            \
    "st z+, r23 \n\t"              \
                                   \
    "ldi r23, 0 \n\t"              \
    "mul r7, r9 \n\t"              \
    "add r28, r0 \n\t"             \
    "adc r29, r1 \n\t"             \
    "adc r23, r25 \n\t"            \
    "add r28, r0 \n\t"             \
    "adc r29, r1 \n\t"             \
    "adc r23, r25 \n\t"            \
    "mul r8, r8 \n\t"              \
    "add r28, r0 \n\t"             \
    "adc r29, r1 \n\t"             \
    "adc r23, r25 \n\t"            \
    "st z+, r28 \n\t"              \
                                   \
    "ldi r28, 0 \n\t"              \
    "mul r8, r9 \n\t"              \
    "add r29, r0 \n\t"             \
    "adc r23, r1 \n\t"             \
    "adc r28, r25 \n\t"            \
    "add r29, r0 \n\t"             \
    "adc r23, r1 \n\t"             \
    "adc r28, r25 \n\t"            \
    "st z+, r29 \n\t"              \
                                   \
    "mul r9, r9 \n\t"              \
    "add r23, r0 \n\t"             \
    "adc r28, r1 \n\t"             \
    "st z+, r23 \n\t"              \
    "st z+, r28 \n\t"

#define FAST_SQUARE_ASM_28_TO_32           \
    "cpi r20, 28 \n\t"                     \
    "brne 1f \n\t"                         \
    "jmp 2f \n\t"                          \
    "1: \n\t"                              \
    "ld r2, x+ \n\t"                       \
    "ld r3, x+ \n\t"                       \
    "ld r4, x+ \n\t"                       \
    "ld r5, x+ \n\t"                       \
    "sbiw r26, 32 \n\t"                    \
    "sbiw r30, 28 \n\t"                    \
    "ld r6, x+ \n\t"                       \
    "ld r7, x+ \n\t"                       \
    "ld r8, x+ \n\t"                       \
    "ld r9, x+ \n\t"                       \
                                           \
    "mul r2, r6 \n\t"                      \
    "mov r10, r0 \n\t"                     \
    "mov r11, r1 \n\t"                     \
    "mov r12, r25 \n\t"                    \
    "mov r13, r25 \n\t"                    \
    "mul r2, r7 \n\t"                      \
    "add r11, r0 \n\t"                     \
    "adc r12, r1 \n\t"                     \
    "adc r13, r25 \n\t"                    \
    "mul r3, r6 \n\t"                      \
    "add r11, r0 \n\t"                     \
    "adc r12, r1 \n\t"                     \
    "adc r13, r25 \n\t"                    \
                                           \
    "mov r14, r25 \n\t"                    \
    "mul r2, r8 \n\t"                      \
    "add r12, r0 \n\t"                     \
    "adc r13, r1 \n\t"                     \
    "adc r14, r25 \n\t"                    \
    "mul r3, r7 \n\t"                      \
    "add r12, r0 \n\t"                     \
    "adc r13, r1 \n\t"                     \
    "adc r14, r25 \n\t"                    \
    "mul r4, r6 \n\t"                      \
    "add r12, r0 \n\t"                     \
    "adc r13, r1 \n\t"                     \
    "adc r14, r25 \n\t"                    \
                                           \
    "mov r15, r25 \n\t"                    \
    "mul r2, r9 \n\t"                      \
    "add r13, r0 \n\t"                     \
    "adc r14, r1 \n\t"                     \
    "adc r15, r25 \n\t"                    \
    "mul r3, r8 \n\t"                      \
    "add r13, r0 \n\t"                     \
    "adc r14, r1 \n\t"                     \
    "adc r15, r25 \n\t"                    \
    "mul r4, r7 \n\t"                      \
    "add r13, r0 \n\t"                     \
    "adc r14, r1 \n\t"                     \
    "adc r15, r25 \n\t"                    \
    "mul r5, r6 \n\t"                      \
    "add r13, r0 \n\t"                     \
    "adc r14, r1 \n\t"                     \
    "adc r15, r25 \n\t"                    \
                                           \
    "ld r6, x+ \n\t"                       \
    "mov r16, r25 \n\t"                    \
    "mul r2, r6 \n\t"                      \
    "add r14, r0 \n\t"                     \
    "adc r15, r1 \n\t"                     \
    "adc r16, r25 \n\t"                    \
    "mul r3, r9 \n\t"                      \
    "add r14, r0 \n\t"                     \
    "adc r15, r1 \n\t"                     \
    "adc r16, r25 \n\t"                    \
    "mul r4, r8 \n\t"                      \
    "add r14, r0 \n\t"                     \
    "adc r15, r1 \n\t"                     \
    "adc r16, r25 \n\t"                    \
    "mul r5, r7 \n\t"                      \
    "add r14, r0 \n\t"                     \
    "adc r15, r1 \n\t"                     \
    "adc r16, r25 \n\t"                    \
                                           \
    "ld r7, x+ \n\t"                       \
    "mov r17, r25 \n\t"                    \
    "mul r2, r7 \n\t"                      \
    "add r15, r0 \n\t"                     \
    "adc r16, r1 \n\t"                     \
    "adc r17, r25 \n\t"                    \
    "mul r3, r6 \n\t"                      \
    "add r15, r0 \n\t"                     \
    "adc r16, r1 \n\t"                     \
    "adc r17, r25 \n\t"                    \
    "mul r4, r9 \n\t"                      \
    "add r15, r0 \n\t"                     \
    "adc r16, r1 \n\t"                     \
    "adc r17, r25 \n\t"                    \
    "mul r5, r8 \n\t"                      \
    "add r15, r0 \n\t"                     \
    "adc r16, r1 \n\t"                     \
    "adc r17, r25 \n\t"                    \
                                           \
    "ld r8, x+ \n\t"                       \
    "mov r18, r25 \n\t"                    \
    "mul r2, r8 \n\t"                      \
    "add r16, r0 \n\t"                     \
    "adc r17, r1 \n\t"                     \
    "adc r18, r25 \n\t"                    \
    "mul r3, r7 \n\t"                      \
    "add r16, r0 \n\t"                     \
    "adc r17, r1 \n\t"                     \
    "adc r18, r25 \n\t"                    \
    "mul r4, r6 \n\t"                      \
    "add r16, r0 \n\t"                     \
    "adc r17, r1 \n\t"                     \
    "adc r18, r25 \n\t"                    \
    "mul r5, r9 \n\t"                      \
    "add r16, r0 \n\t"                     \
    "adc r17, r1 \n\t"                     \
    "adc r18, r25 \n\t"                    \
                                           \
    "ld r9, x+ \n\t"                       \
    "mov r19, r25 \n\t"                    \
    "mul r2, r9 \n\t"                      \
    "add r17, r0 \n\t"                     \
    "adc r18, r1 \n\t"                     \
    "adc r19, r25 \n\t"                    \
    "mul r3, r8 \n\t"                      \
    "add r17, r0 \n\t"                     \
    "adc r18, r1 \n\t"                     \
    "adc r19, r25 \n\t"                    \
    "mul r4, r7 \n\t"                      \
    "add r17, r0 \n\t"                     \
    "adc r18, r1 \n\t"                     \
    "adc r19, r25 \n\t"                    \
    "mul r5, r6 \n\t"                      \
    "add r17, r0 \n\t"                     \
    "adc r18, r1 \n\t"                     \
    "adc r19, r25 \n\t"                    \
                                           \
    "ld r6, x+ \n\t"                       \
    "mov r21, r25 \n\t"                    \
    "mul r2, r6 \n\t"                      \
    "add r18, r0 \n\t"                     \
    "adc r19, r1 \n\t"                     \
    "adc r21, r25 \n\t"                    \
    "mul r3, r9 \n\t"                      \
    "add r18, r0 \n\t"                     \
    "adc r19, r1 \n\t"                     \
    "adc r21, r25 \n\t"                    \
    "mul r4, r8 \n\t"                      \
    "add r18, r0 \n\t"                     \
    "adc r19, r1 \n\t"                     \
    "adc r21, r25 \n\t"                    \
    "mul r5, r7 \n\t"                      \
    "add r18, r0 \n\t"                     \
    "adc r19, r1 \n\t"                     \
    "adc r21, r25 \n\t"                    \
                                           \
    "ld r7, x+ \n\t"                       \
    "mov r22, r25 \n\t"                    \
    "mul r2, r7 \n\t"                      \
    "add r19, r0 \n\t"                     \
    "adc r21, r1 \n\t"                     \
    "adc r22, r25 \n\t"                    \
    "mul r3, r6 \n\t"                      \
    "add r19, r0 \n\t"                     \
    "adc r21, r1 \n\t"                     \
    "adc r22, r25 \n\t"                    \
    "mul r4, r9 \n\t"                      \
    "add r19, r0 \n\t"                     \
    "adc r21, r1 \n\t"                     \
    "adc r22, r25 \n\t"                    \
    "mul r5, r8 \n\t"                      \
    "add r19, r0 \n\t"                     \
    "adc r21, r1 \n\t"                     \
    "adc r22, r25 \n\t"                    \
                                           \
    "ld r8, x+ \n\t"                       \
    "mov r23, r25 \n\t"                    \
    "mul r2, r8 \n\t"                      \
    "add r21, r0 \n\t"                     \
    "adc r22, r1 \n\t"                     \
    "adc r23, r25 \n\t"                    \
    "mul r3, r7 \n\t"                      \
    "add r21, r0 \n\t"                     \
    "adc r22, r1 \n\t"                     \
    "adc r23, r25 \n\t"                    \
    "mul r4, r6 \n\t"                      \
    "add r21, r0 \n\t"                     \
    "adc r22, r1 \n\t"                     \
    "adc r23, r25 \n\t"                    \
    "mul r5, r9 \n\t"                      \
    "add r21, r0 \n\t"                     \
    "adc r22, r1 \n\t"                     \
    "adc r23, r25 \n\t"                    \
                                           \
    "ld r9, x+ \n\t"                       \
    "mov r24, r25 \n\t"                    \
    "mul r2, r9 \n\t"                      \
    "add r22, r0 \n\t"                     \
    "adc r23, r1 \n\t"                     \
    "adc r24, r25 \n\t"                    \
    "mul r3, r8 \n\t"                      \
    "add r22, r0 \n\t"                     \
    "adc r23, r1 \n\t"                     \
    "adc r24, r25 \n\t"                    \
    "mul r4, r7 \n\t"                      \
    "add r22, r0 \n\t"                     \
    "adc r23, r1 \n\t"                     \
    "adc r24, r25 \n\t"                    \
    "mul r5, r6 \n\t"                      \
    "add r22, r0 \n\t"                     \
    "adc r23, r1 \n\t"                     \
    "adc r24, r25 \n\t"                    \
                                           \
    "ld r6, x+ \n\t"                       \
    "mov r28, r25 \n\t"                    \
    "mul r2, r6 \n\t"                      \
    "add r23, r0 \n\t"                     \
    "adc r24, r1 \n\t"                     \
    "adc r28, r25 \n\t"                    \
    "mul r3, r9 \n\t"                      \
    "add r23, r0 \n\t"                     \
    "adc r24, r1 \n\t"                     \
    "adc r28, r25 \n\t"                    \
    "mul r4, r8 \n\t"                      \
    "add r23, r0 \n\t"                     \
    "adc r24, r1 \n\t"                     \
    "adc r28, r25 \n\t"                    \
    "mul r5, r7 \n\t"                      \
    "add r23, r0 \n\t"                     \
    "adc r24, r1 \n\t"                     \
    "adc r28, r25 \n\t"                    \
                                           \
    "ld r7, x+ \n\t"                       \
    "mov r29, r25 \n\t"                    \
    "mul r2, r7 \n\t"                      \
    "add r24, r0 \n\t"                     \
    "adc r28, r1 \n\t"                     \
    "adc r29, r25 \n\t"                    \
    "mul r3, r6 \n\t"                      \
    "add r24, r0 \n\t"                     \
    "adc r28, r1 \n\t"                     \
    "adc r29, r25 \n\t"                    \
    "mul r4, r9 \n\t"                      \
    "add r24, r0 \n\t"                     \
    "adc r28, r1 \n\t"                     \
    "adc r29, r25 \n\t"                    \
    "mul r5, r8 \n\t"                      \
    "add r24, r0 \n\t"                     \
    "adc r28, r1 \n\t"                     \
    "adc r29, r25 \n\t"                    \
                                           \
    "lsl r10 \n\t"                         \
    "rol r11 \n\t"                         \
    "rol r12 \n\t"                         \
    "rol r13 \n\t"                         \
    "rol r14 \n\t"                         \
    "rol r15 \n\t"                         \
    "rol r16 \n\t"                         \
    "rol r17 \n\t"                         \
    "rol r18 \n\t"                         \
    "rol r19 \n\t"                         \
    "rol r21 \n\t"                         \
    "rol r22 \n\t"                         \
    "rol r23 \n\t"                         \
    "rol r24 \n\t"                         \
    "rol r28 \n\t"                         \
    "rol r29 \n\t"                         \
    "ld r0, z \n\t"                        \
    "add r10, r0 \n\t"                     \
    "st z+, r10 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r11, r0 \n\t"                     \
    "st z+, r11 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r12, r0 \n\t"                     \
    "st z+, r12 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r13, r0 \n\t"                     \
    "st z+, r13 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r14, r0 \n\t"                     \
    "st z+, r14 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r15, r0 \n\t"                     \
    "st z+, r15 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r16, r0 \n\t"                     \
    "st z+, r16 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r17, r0 \n\t"                     \
    "st z+, r17 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r18, r0 \n\t"                     \
    "st z+, r18 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r19, r0 \n\t"                     \
    "st z+, r19 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r21, r0 \n\t"                     \
    "st z+, r21 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r22, r0 \n\t"                     \
    "st z+, r22 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r23, r0 \n\t"                     \
    "st z+, r23 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r24, r0 \n\t"                     \
    "st z+, r24 \n\t"                      \
    "adc r28, r25 \n\t"                    \
    "adc r29, r25 \n\t"                    \
    "bst r28, 0 \n\t"                      \
    "lsr r29 \n\t"                         \
    "ror r28 \n\t"                         \
                                           \
    "ld r8, x+ \n\t"                       \
    "mov r10, r25 \n\t"                    \
    "mul r2, r8 \n\t"                      \
    "add r28, r0 \n\t"                     \
    "adc r29, r1 \n\t"                     \
    "adc r10, r25 \n\t"                    \
    "mul r3, r7 \n\t"                      \
    "add r28, r0 \n\t"                     \
    "adc r29, r1 \n\t"                     \
    "adc r10, r25 \n\t"                    \
    "mul r4, r6 \n\t"                      \
    "add r28, r0 \n\t"                     \
    "adc r29, r1 \n\t"                     \
    "adc r10, r25 \n\t"                    \
    "mul r5, r9 \n\t"                      \
    "add r28, r0 \n\t"                     \
    "adc r29, r1 \n\t"                     \
    "adc r10, r25 \n\t"                    \
                                           \
    "ld r9, x+ \n\t"                       \
    "mov r11, r25 \n\t"                    \
    "mul r2, r9 \n\t"                      \
    "add r29, r0 \n\t"                     \
    "adc r10, r1 \n\t"                     \
    "adc r11, r25 \n\t"                    \
    "mul r3, r8 \n\t"                      \
    "add r29, r0 \n\t"                     \
    "adc r10, r1 \n\t"                     \
    "adc r11, r25 \n\t"                    \
    "mul r4, r7 \n\t"                      \
    "add r29, r0 \n\t"                     \
    "adc r10, r1 \n\t"                     \
    "adc r11, r25 \n\t"                    \
    "mul r5, r6 \n\t"                      \
    "add r29, r0 \n\t"                     \
    "adc r10, r1 \n\t"                     \
    "adc r11, r25 \n\t"                    \
                                           \
    "ld r6, x+ \n\t"                       \
    "mov r12, r25 \n\t"                    \
    "mul r2, r6 \n\t"                      \
    "add r10, r0 \n\t"                     \
    "adc r11, r1 \n\t"                     \
    "adc r12, r25 \n\t"                    \
    "mul r3, r9 \n\t"                      \
    "add r10, r0 \n\t"                     \
    "adc r11, r1 \n\t"                     \
    "adc r12, r25 \n\t"                    \
    "mul r4, r8 \n\t"                      \
    "add r10, r0 \n\t"                     \
    "adc r11, r1 \n\t"                     \
    "adc r12, r25 \n\t"                    \
    "mul r5, r7 \n\t"                      \
    "add r10, r0 \n\t"                     \
    "adc r11, r1 \n\t"                     \
    "adc r12, r25 \n\t"                    \
                                           \
    "ld r7, x+ \n\t"                       \
    "mov r13, r25 \n\t"                    \
    "mul r2, r7 \n\t"                      \
    "add r11, r0 \n\t"                     \
    "adc r12, r1 \n\t"                     \
    "adc r13, r25 \n\t"                    \
    "mul r3, r6 \n\t"                      \
    "add r11, r0 \n\t"                     \
    "adc r12, r1 \n\t"                     \
    "adc r13, r25 \n\t"                    \
    "mul r4, r9 \n\t"                      \
    "add r11, r0 \n\t"                     \
    "adc r12, r1 \n\t"                     \
    "adc r13, r25 \n\t"                    \
    "mul r5, r8 \n\t"                      \
    "add r11, r0 \n\t"                     \
    "adc r12, r1 \n\t"                     \
    "adc r13, r25 \n\t"                    \
                                           \
    "ld r8, x+ \n\t"                       \
    "mov r14, r25 \n\t"                    \
    "mul r2, r8 \n\t"                      \
    "add r12, r0 \n\t"                     \
    "adc r13, r1 \n\t"                     \
    "adc r14, r25 \n\t"                    \
    "mul r3, r7 \n\t"                      \
    "add r12, r0 \n\t"                     \
    "adc r13, r1 \n\t"                     \
    "adc r14, r25 \n\t"                    \
    "mul r4, r6 \n\t"                      \
    "add r12, r0 \n\t"                     \
    "adc r13, r1 \n\t"                     \
    "adc r14, r25 \n\t"                    \
    "mul r5, r9 \n\t"                      \
    "add r12, r0 \n\t"                     \
    "adc r13, r1 \n\t"                     \
    "adc r14, r25 \n\t"                    \
                                           \
    "ld r9, x+ \n\t"                       \
    "mov r15, r25 \n\t"                    \
    "mul r2, r9 \n\t"                      \
    "add r13, r0 \n\t"                     \
    "adc r14, r1 \n\t"                     \
    "adc r15, r25 \n\t"                    \
    "mul r3, r8 \n\t"                      \
    "add r13, r0 \n\t"                     \
    "adc r14, r1 \n\t"                     \
    "adc r15, r25 \n\t"                    \
    "mul r4, r7 \n\t"                      \
    "add r13, r0 \n\t"                     \
    "adc r14, r1 \n\t"                     \
    "adc r15, r25 \n\t"                    \
    "mul r5, r6 \n\t"                      \
    "add r13, r0 \n\t"                     \
    "adc r14, r1 \n\t"                     \
    "adc r15, r25 \n\t"                    \
                                           \
    "ld r6, x+ \n\t"                       \
    "mov r16, r25 \n\t"                    \
    "mul r2, r6 \n\t"                      \
    "add r14, r0 \n\t"                     \
    "adc r15, r1 \n\t"                     \
    "adc r16, r25 \n\t"                    \
    "mul r3, r9 \n\t"                      \
    "add r14, r0 \n\t"                     \
    "adc r15, r1 \n\t"                     \
    "adc r16, r25 \n\t"                    \
    "mul r4, r8 \n\t"                      \
    "add r14, r0 \n\t"                     \
    "adc r15, r1 \n\t"                     \
    "adc r16, r25 \n\t"                    \
    "mul r5, r7 \n\t"                      \
    "add r14, r0 \n\t"                     \
    "adc r15, r1 \n\t"                     \
    "adc r16, r25 \n\t"                    \
                                           \
    "ld r7, x+ \n\t"                       \
    "mov r17, r25 \n\t"                    \
    "mul r2, r7 \n\t"                      \
    "add r15, r0 \n\t"                     \
    "adc r16, r1 \n\t"                     \
    "adc r17, r25 \n\t"                    \
    "mul r3, r6 \n\t"                      \
    "add r15, r0 \n\t"                     \
    "adc r16, r1 \n\t"                     \
    "adc r17, r25 \n\t"                    \
    "mul r4, r9 \n\t"                      \
    "add r15, r0 \n\t"                     \
    "adc r16, r1 \n\t"                     \
    "adc r17, r25 \n\t"                    \
    "mul r5, r8 \n\t"                      \
    "add r15, r0 \n\t"                     \
    "adc r16, r1 \n\t"                     \
    "adc r17, r25 \n\t"                    \
                                           \
    "ld r8, x+ \n\t"                       \
    "mov r18, r25 \n\t"                    \
    "mul r2, r8 \n\t"                      \
    "add r16, r0 \n\t"                     \
    "adc r17, r1 \n\t"                     \
    "adc r18, r25 \n\t"                    \
    "mul r3, r7 \n\t"                      \
    "add r16, r0 \n\t"                     \
    "adc r17, r1 \n\t"                     \
    "adc r18, r25 \n\t"                    \
    "mul r4, r6 \n\t"                      \
    "add r16, r0 \n\t"                     \
    "adc r17, r1 \n\t"                     \
    "adc r18, r25 \n\t"                    \
    "mul r5, r9 \n\t"                      \
    "add r16, r0 \n\t"                     \
    "adc r17, r1 \n\t"                     \
    "adc r18, r25 \n\t"                    \
                                           \
    "ld r9, x+ \n\t"                       \
    "mov r19, r25 \n\t"                    \
    "mul r2, r9 \n\t"                      \
    "add r17, r0 \n\t"                     \
    "adc r18, r1 \n\t"                     \
    "adc r19, r25 \n\t"                    \
    "mul r3, r8 \n\t"                      \
    "add r17, r0 \n\t"                     \
    "adc r18, r1 \n\t"                     \
    "adc r19, r25 \n\t"                    \
    "mul r4, r7 \n\t"                      \
    "add r17, r0 \n\t"                     \
    "adc r18, r1 \n\t"                     \
    "adc r19, r25 \n\t"                    \
    "mul r5, r6 \n\t"                      \
    "add r17, r0 \n\t"                     \
    "adc r18, r1 \n\t"                     \
    "adc r19, r25 \n\t"                    \
                                           \
    "ld r6, x+ \n\t"                       \
    "mov r21, r25 \n\t"                    \
    "mul r2, r6 \n\t"                      \
    "add r18, r0 \n\t"                     \
    "adc r19, r1 \n\t"                     \
    "adc r21, r25 \n\t"                    \
    "mul r3, r9 \n\t"                      \
    "add r18, r0 \n\t"                     \
    "adc r19, r1 \n\t"                     \
    "adc r21, r25 \n\t"                    \
    "mul r4, r8 \n\t"                      \
    "add r18, r0 \n\t"                     \
    "adc r19, r1 \n\t"                     \
    "adc r21, r25 \n\t"                    \
    "mul r5, r7 \n\t"                      \
    "add r18, r0 \n\t"                     \
    "adc r19, r1 \n\t"                     \
    "adc r21, r25 \n\t"                    \
                                           \
    "ld r7, x+ \n\t"                       \
    "mov r22, r25 \n\t"                    \
    "mul r2, r7 \n\t"                      \
    "add r19, r0 \n\t"                     \
    "adc r21, r1 \n\t"                     \
    "adc r22, r25 \n\t"                    \
    "mul r3, r6 \n\t"                      \
    "add r19, r0 \n\t"                     \
    "adc r21, r1 \n\t"                     \
    "adc r22, r25 \n\t"                    \
    "mul r4, r9 \n\t"                      \
    "add r19, r0 \n\t"                     \
    "adc r21, r1 \n\t"                     \
    "adc r22, r25 \n\t"                    \
    "mul r5, r8 \n\t"                      \
    "add r19, r0 \n\t"                     \
    "adc r21, r1 \n\t"                     \
    "adc r22, r25 \n\t"                    \
                                           \
    "ld r8, x+ \n\t"                       \
    "mov r23, r25 \n\t"                    \
    "mul r2, r8 \n\t"                      \
    "add r21, r0 \n\t"                     \
    "adc r22, r1 \n\t"                     \
    "adc r23, r25 \n\t"                    \
    "mul r3, r7 \n\t"                      \
    "add r21, r0 \n\t"                     \
    "adc r22, r1 \n\t"                     \
    "adc r23, r25 \n\t"                    \
    "mul r4, r6 \n\t"                      \
    "add r21, r0 \n\t"                     \
    "adc r22, r1 \n\t"                     \
    "adc r23, r25 \n\t"                    \
    "mul r5, r9 \n\t"                      \
    "add r21, r0 \n\t"                     \
    "adc r22, r1 \n\t"                     \
    "adc r23, r25 \n\t"                    \
                                           \
    "ld r9, x+ \n\t"                       \
    "mov r24, r25 \n\t"                    \
    "mul r2, r9 \n\t"                      \
    "add r22, r0 \n\t"                     \
    "adc r23, r1 \n\t"                     \
    "adc r24, r25 \n\t"                    \
    "mul r3, r8 \n\t"                      \
    "add r22, r0 \n\t"                     \
    "adc r23, r1 \n\t"                     \
    "adc r24, r25 \n\t"                    \
    "mul r4, r7 \n\t"                      \
    "add r22, r0 \n\t"                     \
    "adc r23, r1 \n\t"                     \
    "adc r24, r25 \n\t"                    \
    "mul r5, r6 \n\t"                      \
    "add r22, r0 \n\t"                     \
    "adc r23, r1 \n\t"                     \
    "adc r24, r25 \n\t"                    \
                                           \
    "lsl r28 \n\t"                         \
    "bld r28, 0 \n\t"                      \
    "rol r29 \n\t"                         \
    "rol r10 \n\t"                         \
    "rol r11 \n\t"                         \
    "rol r12 \n\t"                         \
    "rol r13 \n\t"                         \
    "rol r14 \n\t"                         \
    "rol r15 \n\t"                         \
    "rol r16 \n\t"                         \
    "rol r17 \n\t"                         \
    "rol r18 \n\t"                         \
    "rol r19 \n\t"                         \
    "rol r21 \n\t"                         \
    "rol r22 \n\t"                         \
    "rol r23 \n\t"                         \
    "rol r24 \n\t"                         \
    "ld r0, z \n\t"                        \
    "add r28, r0 \n\t"                     \
    "st z+, r28 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r29, r0 \n\t"                     \
    "st z+, r29 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r10, r0 \n\t"                     \
    "st z+, r10 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r11, r0 \n\t"                     \
    "st z+, r11 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r12, r0 \n\t"                     \
    "st z+, r12 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r13, r0 \n\t"                     \
    "st z+, r13 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r14, r0 \n\t"                     \
    "st z+, r14 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r15, r0 \n\t"                     \
    "st z+, r15 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r16, r0 \n\t"                     \
    "st z+, r16 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r17, r0 \n\t"                     \
    "st z+, r17 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r18, r0 \n\t"                     \
    "st z+, r18 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r19, r0 \n\t"                     \
    "st z+, r19 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r21, r0 \n\t"                     \
    "st z+, r21 \n\t"                      \
    "ld r0, z \n\t"                        \
    "adc r22, r0 \n\t"                     \
    "st z+, r22 \n\t"                      \
    "adc r23, r25 \n\t"                    \
    "adc r24, r25 \n\t"                    \
                                           \
    "mul r2, r2 \n\t"                      \
    "mov r28, r0 \n\t"                     \
    "mov r29, r1 \n\t"                     \
    "mul r3, r3 \n\t"                      \
    "mov r10, r0 \n\t"                     \
    "mov r11, r1 \n\t"                     \
    "mul r4, r4 \n\t"                      \
    "mov r12, r0 \n\t"                     \
    "mov r13, r1 \n\t"                     \
    "mul r5, r5 \n\t"                      \
    "mov r14, r0 \n\t"                     \
    "mov r15, r1 \n\t"                     \
    "add r28, r23 \n\t"                    \
    "adc r29, r24 \n\t"                    \
    "adc r10, r25 \n\t"                    \
    "adc r11, r25 \n\t"                    \
                                           \
    "mul r7, r5 \n\t"                      \
    "mov r23, r0 \n\t"                     \
    "mov r24, r1 \n\t"                     \
    "mov r16, r25 \n\t"                    \
    "mul r8, r4 \n\t"                      \
    "add r23, r0 \n\t"                     \
    "adc r24, r1 \n\t"                     \
    "adc r16, r25 \n\t"                    \
    "mul r9, r3 \n\t"                      \
    "add r23, r0 \n\t"                     \
    "adc r24, r1 \n\t"                     \
    "adc r16, r25 \n\t"                    \
    "mov r17, r25 \n\t"                    \
    "mul r8, r5 \n\t"                      \
    "add r24, r0 \n\t"                     \
    "adc r16, r1 \n\t"                     \
    "adc r17, r25 \n\t"                    \
    "mul r9, r4 \n\t"                      \
    "add r24, r0 \n\t"                     \
    "adc r16, r1 \n\t"                     \
    "adc r17, r25 \n\t"                    \
    "mul r2, r3 \n\t"                      \
    "add r24, r0 \n\t"                     \
    "adc r16, r1 \n\t"                     \
    "adc r17, r25 \n\t"                    \
    "mov r18, r25 \n\t"                    \
    "mul r9, r5 \n\t"                      \
    "add r16, r0 \n\t"                     \
    "adc r17, r1 \n\t"                     \
    "adc r18, r25 \n\t"                    \
    "mul r2, r4 \n\t"                      \
    "add r16, r0 \n\t"                     \
    "adc r17, r1 \n\t"                     \
    "adc r18, r25 \n\t"                    \
    "mov r19, r25 \n\t"                    \
    "mul r2, r5 \n\t"                      \
    "add r17, r0 \n\t"                     \
    "adc r18, r1 \n\t"                     \
    "adc r19, r25 \n\t"                    \
    "mul r3, r4 \n\t"                      \
    "add r17, r0 \n\t"                     \
    "adc r18, r1 \n\t"                     \
    "adc r19, r25 \n\t"                    \
    "mov r21, r25 \n\t"                    \
    "mul r3, r5 \n\t"                      \
    "add r18, r0 \n\t"                     \
    "adc r19, r1 \n\t"                     \
    "adc r21, r25 \n\t"                    \
    "mul r4, r5 \n\t"                      \
    "add r19, r0 \n\t"                     \
    "adc r21, r1 \n\t"                     \
                                           \
    "lsl r23 \n\t"                         \
    "rol r24 \n\t"                         \
    "rol r16 \n\t"                         \
    "rol r17 \n\t"                         \
    "rol r18 \n\t"                         \
    "rol r19 \n\t"                         \
    "rol r21 \n\t"                         \
    "adc r15, r25 \n\t"                    \
    "add r28, r23 \n\t"                    \
    "adc r29, r24 \n\t"                    \
    "adc r10, r16 \n\t"                    \
    "adc r11, r17 \n\t"                    \
    "adc r12, r18 \n\t"                    \
    "adc r13, r19 \n\t"                    \
    "adc r14, r21 \n\t"                    \
    "adc r15, r25 \n\t"                    \
                                           \
    "st z+, r28 \n\t"                      \
    "st z+, r29 \n\t"                      \
    "st z+, r10 \n\t"                      \
    "st z+, r11 \n\t"                      \
    "st z+, r12 \n\t"                      \
    "st z+, r13 \n\t"                      \
    "st z+, r14 \n\t"                      \
    "st z+, r15 \n\t"                      \
    "adiw r26, 4 \n\t"

#define FAST_SQUARE_ASM_32             \
    "ldi r25, 0 \n\t"                  \
    "movw r28, r26 \n\t"               \
    "ld r2, x+ \n\t"                   \
    "ld r3, x+ \n\t"                   \
    "ld r4, x+ \n\t"                   \
    "ld r5, x+ \n\t"                   \
    "ld r6, x+ \n\t"                   \
    "ld r7, x+ \n\t"                   \
    "adiw r28, 20 \n\t"                \
    "ld r12, y+ \n\t"                  \
    "ld r13, y+ \n\t"                  \
    "ld r14, y+ \n\t"                  \
    "ld r15, y+ \n\t"                  \
    "ld r16, y+ \n\t"                  \
    "ld r17, y+ \n\t"                  \
    "adiw r30, 20 \n\t"                \
                                       \
    "ldi r23, 0 \n\t"                  \
    "mul 2, 12 \n\t"                   \
    "st z+, r0 \n\t"                   \
    "mov r22, r1 \n\t"                 \
                                       \
    "ldi r24, 0 \n\t"                  \
    "mul r2, r13 \n\t"                 \
    "add r22, r0 \n\t"                 \
    "adc r23, r1 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "st z+, r22 \n\t"                  \
                                       \
    "ldi r22, 0 \n\t"                  \
    "mul r2, r14 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r3, r13 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r23, 0 \n\t"                  \
    "mul r2, r15 \n\t"                 \
    "add r24, r0 \n\t"                 \
    "adc r22, r1 \n\t"                 \
    "adc r23, r25 \n\t"                \
    "mul r3, r14 \n\t"                 \
    "add r24, r0 \n\t"                 \
    "adc r22, r1 \n\t"                 \
    "adc r23, r25 \n\t"                \
    "st z+, r24 \n\t"                  \
                                       \
    "ldi r24, 0 \n\t"                  \
    "mul r2, r16 \n\t"                 \
    "add r22, r0 \n\t"                 \
    "adc r23, r1 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "mul r3, r15 \n\t"                 \
    "add r22, r0 \n\t"                 \
    "adc r23, r1 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "mul r4, r14 \n\t"                 \
    "add r22, r0 \n\t"                 \
    "adc r23, r1 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "st z+, r22 \n\t"                  \
                                       \
    "ldi r22, 0 \n\t"                  \
    "mul r2, r17 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r3, r16 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r4, r15 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ld r12, y+ \n\t"                  \
    "ldi r23, 0 \n\t"                  \
    "mul r2, r12 \n\t"                 \
    "add r24, r0 \n\t"                 \
    "adc r22, r1 \n\t"                 \
    "adc r23, r25 \n\t"                \
    "mul r3, r17 \n\t"                 \
    "add r24, r0 \n\t"                 \
    "adc r22, r1 \n\t"                 \
    "adc r23, r25 \n\t"                \
    "mul r4, r16 \n\t"                 \
    "add r24, r0 \n\t"                 \
    "adc r22, r1 \n\t"                 \
    "adc r23, r25 \n\t"                \
    "mul r5, r15 \n\t"                 \
    "add r24, r0 \n\t"                 \
    "adc r22, r1 \n\t"                 \
    "adc r23, r25 \n\t"                \
    "st z+, r24 \n\t"                  \
                                       \
    "ld r13, y+ \n\t"                  \
    "ldi r24, 0 \n\t"                  \
    "mul r2, r13 \n\t"                 \
    "add r22, r0 \n\t"                 \
    "adc r23, r1 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "mul r3, r12 \n\t"                 \
    "add r22, r0 \n\t"                 \
    "adc r23, r1 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "mul r4, r17 \n\t"                 \
    "add r22, r0 \n\t"                 \
    "adc r23, r1 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "mul r5, r16 \n\t"                 \
    "add r22, r0 \n\t"                 \
    "adc r23, r1 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "st z+, r22 \n\t"                  \
                                       \
    "ld r14, y+ \n\t"                  \
    "ldi r22, 0 \n\t"                  \
    "mul r2, r14 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r3, r13 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r4, r12 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r5, r17 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r6, r16 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ld r15, y+ \n\t"                  \
    "ldi r23, 0 \n\t"                  \
    "mul r2, r15 \n\t"                 \
    "add r24, r0 \n\t"                 \
    "adc r22, r1 \n\t"                 \
    "adc r23, r25 \n\t"                \
    "mul r3, r14 \n\t"                 \
    "add r24, r0 \n\t"                 \
    "adc r22, r1 \n\t"                 \
    "adc r23, r25 \n\t"                \
    "mul r4, r13 \n\t"                 \
    "add r24, r0 \n\t"                 \
    "adc r22, r1 \n\t"                 \
    "adc r23, r25 \n\t"                \
    "mul r5, r12 \n\t"                 \
    "add r24, r0 \n\t"                 \
    "adc r22, r1 \n\t"                 \
    "adc r23, r25 \n\t"                \
    "mul r6, r17 \n\t"                 \
    "add r24, r0 \n\t"                 \
    "adc r22, r1 \n\t"                 \
    "adc r23, r25 \n\t"                \
    "st z+, r24 \n\t"                  \
                                       \
    "ld r16, y+ \n\t"                  \
    "ldi r24, 0 \n\t"                  \
    "mul r2, r16 \n\t"                 \
    "add r22, r0 \n\t"                 \
    "adc r23, r1 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "mul r3, r15 \n\t"                 \
    "add r22, r0 \n\t"                 \
    "adc r23, r1 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "mul r4, r14 \n\t"                 \
    "add r22, r0 \n\t"                 \
    "adc r23, r1 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "mul r5, r13 \n\t"                 \
    "add r22, r0 \n\t"                 \
    "adc r23, r1 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "mul r6, r12 \n\t"                 \
    "add r22, r0 \n\t"                 \
    "adc r23, r1 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "mul r7, r17 \n\t"                 \
    "add r22, r0 \n\t"                 \
    "adc r23, r1 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "st z+, r22 \n\t"                  \
                                       \
    "ld r17, y+ \n\t"                  \
    "ldi r22, 0 \n\t"                  \
    "mul r2, r17 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r3, r16 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r4, r15 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r5, r14 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r6, r13 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r7, r12 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ld r2, x+ \n\t"                   \
    "ldi r23, 0 \n\t"                  \
    "mul r3, r17 \n\t"                 \
    "add r24, r0 \n\t"                 \
    "adc r22, r1 \n\t"                 \
    "adc r23, r25 \n\t"                \
    "mul r4, r16 \n\t"                 \
    "add r24, r0 \n\t"                 \
    "adc r22, r1 \n\t"                 \
    "adc r23, r25 \n\t"                \
    "mul r5, r15 \n\t"                 \
    "add r24, r0 \n\t"                 \
    "adc r22, r1 \n\t"                 \
    "adc r23, r25 \n\t"                \
    "mul r6, r14 \n\t"                 \
    "add r24, r0 \n\t"                 \
    "adc r22, r1 \n\t"                 \
    "adc r23, r25 \n\t"                \
    "mul r7, r13 \n\t"                 \
    "add r24, r0 \n\t"                 \
    "adc r22, r1 \n\t"                 \
    "adc r23, r25 \n\t"                \
    "mul r2, r12 \n\t"                 \
    "add r24, r0 \n\t"                 \
    "adc r22, r1 \n\t"                 \
    "adc r23, r25 \n\t"                \
    "st z+, r24 \n\t"                  \
                                       \
    "ld r3, x+ \n\t"                   \
    "ldi r24, 0 \n\t"                  \
    "mul r4, r17 \n\t"                 \
    "add r22, r0 \n\t"                 \
    "adc r23, r1 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "mul r5, r16 \n\t"                 \
    "add r22, r0 \n\t"                 \
    "adc r23, r1 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "mul r6, r15 \n\t"                 \
    "add r22, r0 \n\t"                 \
    "adc r23, r1 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "mul r7, r14 \n\t"                 \
    "add r22, r0 \n\t"                 \
    "adc r23, r1 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "mul r2, r13 \n\t"                 \
    "add r22, r0 \n\t"                 \
    "adc r23, r1 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "st z+, r22 \n\t"                  \
                                       \
    "ld r4, x+ \n\t"                   \
    "ldi r22, 0 \n\t"                  \
    "mul r5, r17 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r6, r16 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r7, r15 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r2, r14 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r3, r13 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ld r5, x+ \n\t"                   \
    "ldi r23, 0 \n\t"                  \
    "mul r6, r17 \n\t"                 \
    "add r24, r0 \n\t"                 \
    "adc r22, r1 \n\t"                 \
    "adc r23, r25 \n\t"                \
    "mul r7, r16 \n\t"                 \
    "add r24, r0 \n\t"                 \
    "adc r22, r1 \n\t"                 \
    "adc r23, r25 \n\t"                \
    "mul r2, r15 \n\t"                 \
    "add r24, r0 \n\t"                 \
    "adc r22, r1 \n\t"                 \
    "adc r23, r25 \n\t"                \
    "mul r3, r14 \n\t"                 \
    "add r24, r0 \n\t"                 \
    "adc r22, r1 \n\t"                 \
    "adc r23, r25 \n\t"                \
    "st z+, r24 \n\t"                  \
                                       \
    "ld r6, x+ \n\t"                   \
    "ldi r24, 0 \n\t"                  \
    "mul r7, r17 \n\t"                 \
    "add r22, r0 \n\t"                 \
    "adc r23, r1 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "mul r2, r16 \n\t"                 \
    "add r22, r0 \n\t"                 \
    "adc r23, r1 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "mul r3, r15 \n\t"                 \
    "add r22, r0 \n\t"                 \
    "adc r23, r1 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "mul r4, r14 \n\t"                 \
    "add r22, r0 \n\t"                 \
    "adc r23, r1 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "st z+, r22 \n\t"                  \
                                       \
    "ld r7, x+ \n\t"                   \
    "ldi r22, 0 \n\t"                  \
    "mul r2, r17 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r3, r16 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r4, r15 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r23, 0 \n\t"                  \
    "mul r3, r17 \n\t"                 \
    "add r24, r0 \n\t"                 \
    "adc r22, r1 \n\t"                 \
    "adc r23, r25 \n\t"                \
    "mul r4, r16 \n\t"                 \
    "add r24, r0 \n\t"                 \
    "adc r22, r1 \n\t"                 \
    "adc r23, r25 \n\t"                \
    "mul r5, r15 \n\t"                 \
    "add r24, r0 \n\t"                 \
    "adc r22, r1 \n\t"                 \
    "adc r23, r25 \n\t"                \
    "st z+, r24 \n\t"                  \
                                       \
    "ldi r24, 0 \n\t"                  \
    "mul r4, r17 \n\t"                 \
    "add r22, r0 \n\t"                 \
    "adc r23, r1 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "mul r5, r16 \n\t"                 \
    "add r22, r0 \n\t"                 \
    "adc r23, r1 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "st z+, r22 \n\t"                  \
                                       \
    "ldi r22, 0 \n\t"                  \
    "mul r5, r17 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r6, r16 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r23, 0 \n\t"                  \
    "mul r6, r17 \n\t"                 \
    "add r24, r0 \n\t"                 \
    "adc r22, r1 \n\t"                 \
    "adc r23, r25 \n\t"                \
    "st z+, r24 \n\t"                  \
                                       \
    "mul r7, r17 \n\t"                 \
    "add r22, r0 \n\t"                 \
    "adc r23, r1 \n\t"                 \
    "st z+, r22 \n\t"                  \
    "st z+, r23 \n\t"                  \
                                       \
    "sbiw r26, 12 \n\t"                \
    "sbiw r30, 44 \n\t"                \
    "ld r2, x+ \n\t"                   \
    "ld r3, x+ \n\t"                   \
    "ld r4, x+ \n\t"                   \
    "ld r5, x+ \n\t"                   \
    "ld r6, x+ \n\t"                   \
    "ld r7, x+ \n\t"                   \
    "ld r8, x+ \n\t"                   \
    "ld r9, x+ \n\t"                   \
    "ld r10, x+ \n\t"                  \
    "ld r11, x+ \n\t"                  \
    "ld r12, x+ \n\t"                  \
    "ld r13, x+ \n\t"                  \
    "ld r14, x+ \n\t"                  \
    "ld r15, x+ \n\t"                  \
    "ld r16, x+ \n\t"                  \
    "ld r17, x+ \n\t"                  \
    "ld r18, x+ \n\t"                  \
    "ld r19, x+ \n\t"                  \
    "ld r20, x+ \n\t"                  \
    "ld r21, x+ \n\t"                  \
                                       \
    "ldi r23, 0 \n\t"                  \
    "mul r2, r2 \n\t"                  \
    "st z+, r0 \n\t"                   \
    "mov r22, r1 \n\t"                 \
                                       \
    "ldi r24, 0 \n\t"                  \
    "mul r2, r3 \n\t"                  \
    "add r22, r0 \n\t"                 \
    "adc r23, r1 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "add r22, r0 \n\t"                 \
    "adc r23, r1 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "st z+, r22 \n\t"                  \
                                       \
    "ldi r22, 0 \n\t"                  \
    "mul r2, r4 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r3, r3 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r2, r5 \n\t"                  \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r3, r4 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r22, 0 \n\t"                  \
    "mul r2, r6 \n\t"                  \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r3, r5 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r4, r4 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r2, r7 \n\t"                  \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r3, r6 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r4, r5 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r22, 0 \n\t"                  \
    "mul r2, r8 \n\t"                  \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r3, r7 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r4, r6 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r5, r5 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r2, r9 \n\t"                  \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r3, r8 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r4, r7 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r5, r6 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r22, 0 \n\t"                  \
    "mul r2, r10 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r3, r9 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r4, r8 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r5, r7 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r6, r6 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r2, r11 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r3, r10 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r4, r9 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r5, r8 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r6, r7 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r22, 0 \n\t"                  \
    "mul r2, r12 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r3, r11 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r4, r10 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r5, r9 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r6, r8 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r7, r7 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r2, r13 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r3, r12 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r4, r11 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r5, r10 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r6, r9 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r7, r8 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r22, 0 \n\t"                  \
    "mul r2, r14 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r3, r13 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r4, r12 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r5, r11 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r6, r10 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r7, r9 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r8, r8 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r2, r15 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r3, r14 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r4, r13 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r5, r12 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r6, r11 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r7, r10 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r8, r9 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r22, 0 \n\t"                  \
    "mul r2, r16 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r3, r15 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r4, r14 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r5, r13 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r6, r12 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r7, r11 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r8, r10 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r9, r9 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r2, r17 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r3, r16 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r4, r15 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r5, r14 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r6, r13 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r7, r12 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r8, r11 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r9, r10 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r22, 0 \n\t"                  \
    "mul r2, r18 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r3, r17 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r4, r16 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r5, r15 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r6, r14 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r7, r13 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r8, r12 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r9, r11 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r10, r10 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r2, r19 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r3, r18 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r4, r17 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r5, r16 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r6, r15 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r7, r14 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r8, r13 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r9, r12 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r10, r11 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r22, 0 \n\t"                  \
    "mul r2, r20 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r3, r19 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r4, r18 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r5, r17 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r6, r16 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r7, r15 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r8, r14 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r9, r13 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r10, r12 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r11, r11 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r2, r21 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r3, r20 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r4, r19 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r5, r18 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r6, r17 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r7, r16 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r8, r15 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r9, r14 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r10, r13 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r11, r12 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ld r2, x+ \n\t"                   \
    "ldi r22, 0 \n\t"                  \
    "mul r3, r21 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r4, r20 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r5, r19 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r6, r18 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r7, r17 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r8, r16 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r9, r15 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r10, r14 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r11, r13 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "ld r0, z \n\t"                    \
    "add r23, r0 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r12, r12 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r3, r2 \n\t"                  \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r4, r21 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r5, r20 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r6, r19 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r7, r18 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r8, r17 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r9, r16 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r10, r15 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r11, r14 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r12, r13 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "ld r0, z \n\t"                    \
    "add r23, r0 \n\t"                 \
    "adc r28, r25 \n\t"                \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ld r3, x+ \n\t"                   \
    "ldi r22, 0 \n\t"                  \
    "mul r4, r2 \n\t"                  \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r5, r21 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r6, r20 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r7, r19 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r8, r18 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r9, r17 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r10, r16 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r11, r15 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r12, r14 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "ld r0, z \n\t"                    \
    "add r23, r0 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r13, r13 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r4, r3 \n\t"                  \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r5, r2 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r6, r21 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r7, r20 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r8, r19 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r9, r18 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r10, r17 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r11, r16 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r12, r15 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r13, r14 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "ld r0, z \n\t"                    \
    "add r23, r0 \n\t"                 \
    "adc r28, r25 \n\t"                \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ld r4, x+ \n\t"                   \
    "ldi r22, 0 \n\t"                  \
    "mul r5, r3 \n\t"                  \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r6, r2 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r7, r21 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r8, r20 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r9, r19 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r10, r18 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r11, r17 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r12, r16 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r13, r15 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "ld r0, z \n\t"                    \
    "add r23, r0 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r14, r14 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r5, r4 \n\t"                  \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r6, r3 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r7, r2 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r8, r21 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r9, r20 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r10, r19 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r11, r18 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r12, r17 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r13, r16 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r14, r15 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "ld r0, z \n\t"                    \
    "add r23, r0 \n\t"                 \
    "adc r28, r25 \n\t"                \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ld r5, x+ \n\t"                   \
    "ldi r22, 0 \n\t"                  \
    "mul r6, r4 \n\t"                  \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r7, r3 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r8, r2 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r9, r21 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r10, r20 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r11, r19 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r12, r18 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r13, r17 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r14, r16 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "ld r0, z \n\t"                    \
    "add r23, r0 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r15, r15 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r6, r5 \n\t"                  \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r7, r4 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r8, r3 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r9, r2 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r10, r21 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r11, r20 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r12, r19 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r13, r18 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r14, r17 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r15, r16 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "ld r0, z \n\t"                    \
    "add r23, r0 \n\t"                 \
    "adc r28, r25 \n\t"                \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ld r6, x+ \n\t"                   \
    "ldi r22, 0 \n\t"                  \
    "mul r7, r5 \n\t"                  \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r8, r4 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r9, r3 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r10, r2 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r11, r21 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r12, r20 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r13, r19 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r14, r18 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r15, r17 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "ld r0, z \n\t"                    \
    "add r23, r0 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r16, r16 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r7, r6 \n\t"                  \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r8, r5 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r9, r4 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r10, r3 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r11, r2 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r12, r21 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r13, r20 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r14, r19 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r15, r18 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r16, r17 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "ld r0, z \n\t"                    \
    "add r23, r0 \n\t"                 \
    "adc r28, r25 \n\t"                \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ld r7, x+ \n\t"                   \
    "ldi r22, 0 \n\t"                  \
    "mul r8, r6 \n\t"                  \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r9, r5 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r10, r4 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r11, r3 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r12, r2 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r13, r21 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r14, r20 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r15, r19 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r16, r18 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "ld r0, z \n\t"                    \
    "add r23, r0 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r17, r17 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r8, r7 \n\t"                  \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r9, r6 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r10, r5 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r11, r4 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r12, r3 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r13, r2 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r14, r21 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r15, r20 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r16, r19 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r17, r18 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "ld r0, z \n\t"                    \
    "add r23, r0 \n\t"                 \
    "adc r28, r25 \n\t"                \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ld r8, x+ \n\t"                   \
    "ldi r22, 0 \n\t"                  \
    "mul r9, r7 \n\t"                  \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r10, r6 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r11, r5 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r12, r4 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r13, r3 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r14, r2 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r15, r21 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r16, r20 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r17, r19 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "ld r0, z \n\t"                    \
    "add r23, r0 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r18, r18 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r9, r8 \n\t"                  \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r10, r7 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r11, r6 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r12, r5 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r13, r4 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r14, r3 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r15, r2 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r16, r21 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r17, r20 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r18, r19 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "ld r0, z \n\t"                    \
    "add r23, r0 \n\t"                 \
    "adc r28, r25 \n\t"                \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ld r9, x+ \n\t"                   \
    "ldi r22, 0 \n\t"                  \
    "mul r10, r8 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r11, r7 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r12, r6 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r13, r5 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r14, r4 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r15, r3 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r16, r2 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r17, r21 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r18, r20 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "ld r0, z \n\t"                    \
    "add r23, r0 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r19, r19 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r10, r9 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r11, r8 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r12, r7 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r13, r6 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r14, r5 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r15, r4 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r16, r3 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r17, r2 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r18, r21 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r19, r20 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "ld r0, z \n\t"                    \
    "add r23, r0 \n\t"                 \
    "adc r28, r25 \n\t"                \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ld r10, x+ \n\t"                  \
    "ldi r22, 0 \n\t"                  \
    "mul r11, r9 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r12, r8 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r13, r7 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r14, r6 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r15, r5 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r16, r4 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r17, r3 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r18, r2 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r19, r21 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "ld r0, z \n\t"                    \
    "add r23, r0 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r20, r20 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r11, r10 \n\t"                \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r12, r9 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r13, r8 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r14, r7 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r15, r6 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r16, r5 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r17, r4 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r18, r3 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r19, r2 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r20, r21 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "ld r0, z \n\t"                    \
    "add r23, r0 \n\t"                 \
    "adc r28, r25 \n\t"                \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ld r11, x+ \n\t"                  \
    "ldi r22, 0 \n\t"                  \
    "mul r12, r10 \n\t"                \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r13, r9 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r14, r8 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r15, r7 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r16, r6 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r17, r5 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r18, r4 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r19, r3 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r20, r2 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "ld r0, z \n\t"                    \
    "add r23, r0 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r21, r21 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r12, r11 \n\t"                \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r13, r10 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r14, r9 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r15, r8 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r16, r7 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r17, r6 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r18, r5 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r19, r4 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r20, r3 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r21, r2 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "ld r0, z \n\t"                    \
    "add r23, r0 \n\t"                 \
    "adc r28, r25 \n\t"                \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ld r12, x+ \n\t"                  \
    "ldi r22, 0 \n\t"                  \
    "mul r13, r11 \n\t"                \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r14, r10 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r15, r9 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r16, r8 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r17, r7 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r18, r6 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r19, r5 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r20, r4 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r21, r3 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "ld r0, z \n\t"                    \
    "add r23, r0 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r2, r2 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r13, r12 \n\t"                \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r14, r11 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r15, r10 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r16, r9 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r17, r8 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r18, r7 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r19, r6 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r20, r5 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r21, r4 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r2, r3 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "ld r0, z \n\t"                    \
    "add r23, r0 \n\t"                 \
    "adc r28, r25 \n\t"                \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ld r13, x+ \n\t"                  \
    "ldi r22, 0 \n\t"                  \
    "mul r14, r12 \n\t"                \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r15, r11 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r16, r10 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r17, r9 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r18, r8 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r19, r7 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r20, r6 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r21, r5 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r2, r4 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "ld r0, z \n\t"                    \
    "add r23, r0 \n\t"                 \
    "adc r24, r25 \n\t"                \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r3, r3 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r14, r13 \n\t"                \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r15, r12 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r16, r11 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r17, r10 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r18, r9 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r19, r8 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r20, r7 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r21, r6 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r2, r5 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r3, r4 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "ld r0, z \n\t"                    \
    "add r23, r0 \n\t"                 \
    "adc r28, r25 \n\t"                \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r22, 0 \n\t"                  \
    "mul r15, r13 \n\t"                \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r16, r12 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r17, r11 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r18, r10 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r19, r9 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r20, r8 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r21, r7 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r2, r6 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r3, r5 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r4, r4 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r16, r13 \n\t"                \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r17, r12 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r18, r11 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r19, r10 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r20, r9 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r21, r8 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r2, r7 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r3, r6 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r4, r5 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r22, 0 \n\t"                  \
    "mul r17, r13 \n\t"                \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r18, r12 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r19, r11 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r20, r10 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r21, r9 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r2, r8 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r3, r7 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r4, r6 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r5, r5 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r18, r13 \n\t"                \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r19, r12 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r20, r11 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r21, r10 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r2, r9 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r3, r8 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r4, r7 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r5, r6 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r22, 0 \n\t"                  \
    "mul r19, r13 \n\t"                \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r20, r12 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r21, r11 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r2, r10 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r3, r9 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r4, r8 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r5, r7 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r6, r6 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r20, r13 \n\t"                \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r21, r12 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r2, r11 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r3, r10 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r4, r9 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r5, r8 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r6, r7 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r22, 0 \n\t"                  \
    "mul r21, r13 \n\t"                \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r2, r12 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r3, r11 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r4, r10 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r5, r9 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r6, r8 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r7, r7 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r2, r13 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r3, r12 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r4, r11 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r5, r10 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r6, r9 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r7, r8 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r22, 0 \n\t"                  \
    "mul r3, r13 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r4, r12 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r5, r11 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r6, r10 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r7, r9 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r8, r8 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r4, r13 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r5, r12 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r6, r11 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r7, r10 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r8, r9 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r22, 0 \n\t"                  \
    "mul r5, r13 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r6, r12 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r7, r11 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r8, r10 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r9, r9 \n\t"                  \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r6, r13 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r7, r12 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r8, r11 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r9, r10 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r22, 0 \n\t"                  \
    "mul r7, r13 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r8, r12 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "mul r9, r11 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r10, r10 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r8, r13 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r9, r12 \n\t"                 \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "mul r10, r11 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r22, 0 \n\t"                  \
    "mul r9, r13 \n\t"                 \
    "mov r23, r0 \n\t"                 \
    "mov r24, r1 \n\t"                 \
    "mul r10, r12 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r24 \n\t"                     \
    "rol r22 \n\t"                     \
    "mul r11, r11 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r24, r1 \n\t"                 \
    "adc r22, r25 \n\t"                \
    "add r23, r28 \n\t"                \
    "adc r24, r29 \n\t"                \
    "adc r22, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r29, 0 \n\t"                  \
    "mul r10, r13 \n\t"                \
    "mov r23, r0 \n\t"                 \
    "mov r28, r1 \n\t"                 \
    "mul r11, r12 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "adc r29, r25 \n\t"                \
    "lsl r23 \n\t"                     \
    "rol r28 \n\t"                     \
    "rol r29 \n\t"                     \
    "add r23, r24 \n\t"                \
    "adc r28, r22 \n\t"                \
    "adc r29, r25 \n\t"                \
    "st z+, r23 \n\t"                  \
                                       \
    "ldi r23, 0 \n\t"                  \
    "mul r11, r13 \n\t"                \
    "add r28, r0 \n\t"                 \
    "adc r29, r1 \n\t"                 \
    "adc r23, r25 \n\t"                \
    "add r28, r0 \n\t"                 \
    "adc r29, r1 \n\t"                 \
    "adc r23, r25 \n\t"                \
    "mul r12, r12 \n\t"                \
    "add r28, r0 \n\t"                 \
    "adc r29, r1 \n\t"                 \
    "adc r23, r25 \n\t"                \
    "st z+, r28 \n\t"                  \
                                       \
    "ldi r28, 0 \n\t"                  \
    "mul r12, r13 \n\t"                \
    "add r29, r0 \n\t"                 \
    "adc r23, r1 \n\t"                 \
    "adc r28, r25 \n\t"                \
    "add r29, r0 \n\t"                 \
    "adc r23, r1 \n\t"                 \
    "adc r28, r25 \n\t"                \
    "st z+, r29 \n\t"                  \
                                       \
    "mul r13, r13 \n\t"                \
    "add r23, r0 \n\t"                 \
    "adc r28, r1 \n\t"                 \
    "st z+, r23 \n\t"                  \
    "st z+, r28 \n\t"

#endif /* _UECC_ASM_AVR_MULT_SQUARE_H_ */
